package com.exception.demo;
public class Captor {
/**
* @param args
* Exception是所有异常类的父类
* 如果将它的代码块方其他两个代码块前面,后面的代码块将永远得不到执行
* 所以 catch 语句的顺序不可调换
*
* 异常的使用原则:
* 1.在当前方法中使用 try - catch 语句捕获异常
* 2.一个方法被覆盖时,覆盖它的方法必须抛出相同的异常或异常的子类
* 3.如果父类抛出多个异常,则覆盖方法必须抛出那些异常的一个子集,不能抛出新异常
*/
static int quotient(int x,int y)throws MyException{ // 定义方法抛出异常
if(y < 0){ // 判断参数是否小于0
throw new MyException("除数不能是负数"); // 异常信息
}
return x / y; // 返回值
}
public static void main(String[] args) { // 主方法
try { // try语句包含可能发生异常的语句
int result = quotient(3, -1); // 调用语句方法 quotient()
} catch (MyException e) { // 处理自定义异常
System.out.println(e.getMessage()); //输出异常信息
}catch (ArrayStoreException e) { // 处理 ArrayStoreException 异常
System.out.println("除数不能为0"); // 输出异常信息
}catch (Exception e) { // 处理其它异常
System.out.println("程序发生了其他异常"); //输出提示信息
}
}
}
class MyException extends Exception { // 创建自定义异常类
String message; // 定义 String 类型变量
public MyException(String ErrorMessager){ // 父类方法
message = ErrorMessager;
}
public String getMessage(){ // 覆盖 getMessage() 方法
return message;
}
}