文章目录
article
异常
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();
}
}
}