🤖 AI文章摘要 qwen-turbo-latest
加载中...

1. java的异常处理机制

异常抛出与捕捉

  try{
	可能产生异常的代码
}catch(异常类型 异常变量)…
finally{无论是否发生异常都会执行的代码}
//----------------------------------
public void function() throws 异常类型,...{
	trow 异常变量
}
  
  • 父类方法的异常子类只能抛出小于或等于父类方法抛出的异常, 若等于父类抛出的异常可以不写异常
  • java在异常处理中加入的finally代码块一般用来释放try中占用的资源, 一般不做return返回

异常类型

java的异常类型必须继承自Exception类, 并实现Throwable接口.

  • 运行期异常(例如NullPointerException)的处理过程和C++一致, 可不使用throws声明
  • 编译期异常(例如FileNotFoundException)调用者必要须要处理, 若处理不了需手动向上抛出异常, 必须在方法声明处使用throws声明编译期异常

异常与多态

和C++一致

2. 内置异常

Exception类实现了Throwable, 它含有以下常用方法

  public String getMessage() 简短信息
public String toString() 详细信息
public void printStackTrace(), 若对象抛给了jvm则默认调用的是该方法, 异常信息是最全面的
  

3. 自定义异常

  public class RegisterException extends Exception { 
	public RegisterException() {
		/*空参构造*/ 
	}
	public RegisterException(String message) { 
		/*有参构造*/ 
		super(message); 
	} 
}
public class Main{
	public static void main(String[] args){
		try{
			throw new RegisterException("自定义异常");
		}catch(RegisterException e){
			e.printStackTrace();
		}
	}
}