Java教程

Java-异常处理

本文主要是介绍Java-异常处理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

异常处理

一、异常体系结构

二 、常见异常类型

java.lang.Throwable

  • java.lang.Error:一般不编写针对性的代码进行处理。
  • java.lang.Exception:可以进行异常的处理
    • 编译时异常(checked)
      • IOException
      • FileNotFoundException
      • ClassNotFoundException
    • 运行时异常(unchecked,RuntimeException)
      • NullPointerException
      • ArrayIndexOutOfBoundsException
      • ClassCastException
      • NumberFormatException
      • InputMismatchException
      • ArithmeticException

三、异常的处理

3.1 try-catch-finally

try{
	//可能出现异常的代码
}catch(异常类型1 变量名1){
	//处理异常的方式1
}catch(异常类型2 变量名2){
	//处理异常的方式2
}catch(异常类型3 变量名3){
	//处理异常的方式3
}
....
finally{
	//一定会执行的代码
}
  • finally是可选的,代码块中的语句一定会被执行
  • 一旦try中的异常对象匹配到某一个catch时,就进入catch中进行异常的处理。一旦处理完成,就跳出当前的try-catch结构
  • catch中的异常类型如果满足子父类关系,则要求子类一定声明在父类的上面。否则,报错
  • 常用的异常对象处理的方式: ① String getMessage() ② printStackTrace()
  • 像数据库连接、输入输出流、网络编程Socket等资源,JVM不能自动的回收的,需要手动的进行资源的释放,就需要声明在finally中

3.2 throws

"throws + 异常类型"写在方法的声明处。指明此方法执行时,可能会抛出的异常类型。一旦当方法体执行时,出现异常,仍会在异常代码处生成一个异常类的对象,此对象满足throws后异常类型时,就会被抛出。异常代码后续的代码,就不再执行!

3.3 使用

捕捉并处理知道如何处理的异常,而抛出不知道如何处理的异常。

四、自定义异常类

如何定义:

  • 继承于现的异常结构:RuntimeException 、Exception
  • 提供全局常量:serialVersionUID
  • 提供重载的构造器
public class MyExceptionTest {
	public static void main(String[] args) {
		MyExceptionTest test = new MyExceptionTest();
		test.method();
	}
	
	public void method() {
		try {
			method1();
		} catch (Exception e) {
			System.out.println(e.getMessage());
			e.printStackTrace();
		}
	}
	
	public void method1() throws Exception {
		throw new MyException("抛出异常!");
	}
}

class MyException extends Exception {
	
	static final long serialVersionUID = -33875353129948L;
	
	public MyException() {
	}
	
	public MyException(String msg) {
		super(msg);
	}
}
这篇关于Java-异常处理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!