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; } }
时间: 2024-10-26 19:15:27