java自定义异常
1.定义
Java中的自定义异常是指根据业务需求或特定场景需要自己定义的异常类。自定义异常类需要继承Exception或RuntimeException类,通常包括构造方法、异常信息等属性和方法。
2.步骤
- 创建自定义异常类
- 在方法中通过throw抛出异常对象
- 如果在当前方法中对抛出的异常对象作处理,可以使用try-catch语句块捕获抛出异常对象并且处理,否则要在方法的声明处通过throws关键字指明要抛出给方法调用者的异常。
- 在出现异常方法的调用者中捕获并处理异常
3.代码示例
public class MyException extends RuntimeException{
public MyException(){
}
public MyException(String s){
super(s);
.....
}
}
测试
public class Test {
static int quotient(int x,int y) throws Exception{
if(y<0){
throw new MyException("除数不能是负数");
}
return x/y;
}
public static void main(String[] args) {
int a= 3;
int b=0;
try {
int result = quotient(a,b);//调用quotient自定义异常方法,当b=0,会抛出ArithmeticException类的异常对象
System.out.println(result);
}catch (MyException e){
System.out.println(e.getMessage());
}catch (ArithmeticException e) {//异常对象会被此ArithmeticException类捕获
System.out.println("除数不能为0");
}catch (Exception e){
System.out.println("程序发生了其它的异常");
}
}
}
class MyException extends Exception{
String message;
public MyException(String ErrorMessage){
this.message = ErrorMessage;
}
@Override
public String getMessage() {
return message;
}
}
4.系统定义的异常与用户定义的异常区别
系统定义的异常是特定情况出现的问题,而此时用来对可能遇到的问题进行处理。用户定义的异常是自己觉得可能会出现问题时,需要处理的。这样避免程序中断或是出现未知错误。
系统异常有两种一种是运行时异常,一种是普通异常,普通异常要求用户捕获或者抛出的,不捕获或者抛出就会编译不通过。运行时异常编译可以通过,但是运行时才显露出来