java异常类的执行流程与自定义异常类

在我们写代码时,可以通过判断一些参数是否正确来决定是否中断程序(抛出异常)

class WrongInputException extends Exception { // 自定义的类    
     WrongInputException(String s) {
        super(s);
    }
}
class Input {
//如果一个函数要抛出异常但是自己不处理异常(catch),而是交给调用它的函数去处理,那么就要声明抛出的异常类型
//即throws WrongInputException
void method() throws WrongInputException { 
    if(isWrong(input))//如果输入值错误那么就抛出异常
        throw new WrongInputException("Wrong input"); // 抛出自定义的类
    }
}
class TestInput {
//如果一个函数要抛出异常并且自己处理异常(catch),那么不用声明抛出的异常类型
//没有throws WrongInputException
public static void main(String[] args){ try {
            new Input().method();
        }
        catch(WrongInputException wie) {
            System.out.println(wie.getMessage());
        }
    } 
}

 

 在程序中一些地方如果因为出现异常而需要中断时,可以使用throw语句抛出异常(每个异常都是一个名叫Throwable的类的一个实例,exception类继承自throwable类),相应的catch语句会接管执行。但是catch语句不一定和throw语句在同一个函数中。

抛出异常有两种方法:

1.抛出异常的函数自己处理异常try...catch...finally结构。

//如果一个函数要抛出异常并且自己处理异常(catch),那么不用声明抛出的异常类型
//没有throws WrongInputException
public static void main(String[] args){ 
     try { new Input().method(); } catch(WrongInputException wie) { System.out.println(wie.getMessage()); } }

2.抛出异常的函数不处理异常,而是将异常抛出给调用自己的函数(函数名后跟throws...语句)。

//如果一个函数要抛出异常但是自己不处理异常(catch),而是交给调用它的函数去处理,那么就要声明抛出的异常类型
//即throws WrongInputException
void method() throws WrongInputException { 
    if(isWrong(input))//如果输入值错误那么就抛出异常
        throw new WrongInputException("Wrong input"); // 抛出自定义的类
    }

自定义异常类:

class WrongInputException extends Exception { // 自定义的类    
     WrongInputException(String s) {
        super(s);
    }
}

一般继承Exception类,异常类的作用是遇到throw语句时跳转到catch语句,本质上是个跳转语句。

 

转载于:https://www.cnblogs.com/silver-aircraft/p/11448379.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值