Java程序中的异常应该在啥时候抛出

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java程序中的异常应该在啥时候抛出相关的知识,希望对你有一定的参考价值。

谈谈个人理解:

大多数程序员问什么时候抛出,其实都是在纠结方法什么时候throws Exception,如果是这样,那么说明你根本还没搞懂什么是声明什么是抛出。简单的说:throws是声明,throw是抛出。

throws 一般是检查型异常,如IOExcetion等,简单点说,编译的时候就有需要声明或捕获的异常,表示此方法不处理异常,而交给方法调用处进行处理

throw 一般是抛出运行时异常(即该异常为RuntimeException的子类)。并且方法一般不需要throws Exception

API

所以我之理解:没事别瞎到方法后面加throws Exception,看着乱,因为大多都是RuntimeException;除非你真的有检查时异常你再声明给上一层处理。

主要一些自己的看法,欢迎更正,谢谢大家了

参考技术A 异常就是“运行时错误”,例如:

在进行除法运算时,除数为0会导致运行时错误,所以应该在输入的除数为0时抛出一个“异常”
参考技术B 在该方法处理不了的时候或者不适合该方法处理的时候抛出

Java中的异常的捕获和抛出是啥意思,有啥区别

抛出异常是方法本身不进行处理这个异常需要调用方法的时候进行处理,捕获异常是在方法本身自己将异常进行处理。

1、抛出异常是方法中声明该方法可能出现的异常状态,利用throws关键字,捕获异常是在已知方法中会产生,或不完全确定,但是可能会产生异常的情况下,对能产生异常的代码部分进行的try catch处理。

2、假设方法A 声明的时候有声明抛出异常 void A() throws IOException那么在方法B中如果要调用A 只有2中策略可以B不处理,继续抛出,交给下一个环节处理。B捕获他,并处理

3、voidB()

try

A();//

catch(IOExceptione)

//这里进行异常的处理,如果不想处理,不写任何代码也可以,但是不推荐。

参考技术A 捕获异常是指发生异常时,最相应处理,避免程序崩溃
抛出异常大概就是让程序知道哪里可能会存在异常,发生异常后,回滚处理
参考技术B 抛出指的是不处理,捕获则处理 参考技术C

抛出异常是方法中声明该方法可能出现的异常状态(利用throws关键字)

捕获异常是在已知方法中会产生(或不完全确定,但是可能会产生)异常的情况下,对能产生异常的代码部分进行的try catch处理


假设方法A 声明的时候有声明抛出异常 void A() throws IOException

那么在方法B中如果要调用A 只有2中策略可以

1:B不处理,继续抛出,交给下一个环节处理

2:B捕获他,并处理

void B()

    try
   
      A();//
    catch(IOException e)
    
       //这里进行异常的处理,如果不想处理,不写任何代码也可以,但是不推荐
    

追问

请问捕获的异常总之是必要要处理是吗,不管最后谁进行处理

以上是关于Java程序中的异常应该在啥时候抛出的主要内容,如果未能解决你的问题,请参考以下文章

在java中throw与throws各自用在啥地方?

Java 抛出异常是怎么回事?谢谢....望能提供答案........

什么时候应该因为 Java 中的异常(设计问题)而让应用程序崩溃? [关闭]

Java多层嵌套异常处理的基本流程

异常处理

java中异常的理解