Java自定义异常处理
1:自定义异常概念
自定义异常,是在某一些特殊情况下,JDK自带的异常无法准确描述异常情况时,采用自己定义异常类的方式封装异常信息。
2:步骤
- 定义自定义异常类,继承至某个Exception类,重写其中构造方法。
- 在代码中检测到某个条件成立,需要抛出异常的位置,使用throw 语句抛出自定义异常类的实例
- 在代码所在的方法后面,添加throws 字句,表示方法有一个自定义异常类型的异常信息需要处理
- 在方法的调用者处理异常信息。
3:示例
1:定义自定义异常类,继承至某个Exception类,重写其中构造方法。
class DivideZeroException extends Exception{
public DivideZeroException() {
super();
}
public DivideZeroException(String message){
super(message);
}
}
2:在代码中检测到某个条件成立,需要抛出异常的位置,使用throw 语句抛出自定义异常类的实例,
public class Test {
public static int divide(int a, int b){
if(b==0){
throw new DivideZeroException("除以0异常");
}
return a / b;
}
}
3:在方法上使用throws语句抛出异常的类型
public class Test {
public static int divide(int a, int b) throws DivideZeroException {
if(b==0){
throw new DivideZeroException("除以0异常");
}
return a / b;
}
}
4:在方法的调用者处理异常信息
public class Test {
public static int divide(int a, int b) throws DivideZeroException {
if(b==0){
throw new DivideZeroException("除以0异常");
}
return a / b;
}
public static void main(String[] args) {
try{
int result = divide(10, 0);
System.out.println(result);
}catch(DivideZeroException e){
e.printStackTrace();
}
System.out.println("程序继续执行");
}
}
5:程序执行结果
4:全部代码
class DivideZeroException extends Exception{
public DivideZeroException() {
super();
}
public DivideZeroException(String message){
super(message);
}
}
public class Test {
public static int divide(int a, int b) throws DivideZeroException {
if(b==0){
throw new DivideZeroException("除以0异常");
}
return a / b;
}
public static void main(String[] args) {
try{
int result = divide(10, 0);
System.out.println(result);
}catch(DivideZeroException e){
e.printStackTrace();
}
System.out.println("程序继续执行");
}
}