java有异常没捕捉为什么(java异常抛出异常后捕捉和不抛出直接捕捉有什么区别)
这篇文章给大家聊聊关于java有异常没捕捉为什么,以及java异常抛出异常后捕捉和不抛出直接捕捉有什么区别对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。
java捕捉了异常后可以不处理异常吗
你看一看任何一本Java书的异常处理那一章。所有的异常类都是从类Throwable类派生而来,有两个之间子类:Exception类和Error类,Error类的异常与程序员无法控制的错误有关,Exception类的子类表示由程序活动导致的错误。所以异常也不都是会导致程序崩溃啊,例如无法打开文件的异常,那你就处理一下告诉用户不能打开请再次尝试就行,或者不处理(当然不好)。你可以try完了,catch里什么都不写不就不处理了吗、、、不过你只写try不写catch,编译不过去。
异常处不处理取决于你得代码处于系统的哪一层次。当你觉得异常需要交给更上层的应用用户去处理的时候,抛出异常就可以了。
可以不处理异常,只要不会给之后的程序产生影响(造成之后程序更多的异常),都可以不做处理的。
比如关闭流的时候,stream.close()会产生IO异常,这种异常一般就不处理
程序没有捕获,系统就会去捕获,并处理,奔溃与否,看系统.
java中异常捕获后不处理再抛出什么意思
这种情况一般是为了处理必须catch的异常,也就是受检的异常,之后,再讲这个异常翻译成上层认识的异常。其实,你可以理解成做异常的转译,以便与最外层的异常处理认识。
比如,在最外层,从业务上讲,你只定义了 AException, BException两个异常模型;当下层在处理IO时,要求必须对IOException进行处理,而此时,你认为当发生IOException时,对上层来讲其实就是AException,此时,你可以再 new一个 AException,往外抛;但如果此时你认为这是正常的,那就不用抛出,直接处理掉就好了,不知道我这么说能否理解。
java中抛出的异常无法被捕获到,究竟是为啥
1.
其实抛出异常后应该就不能叫捕捉了
—因为捕捉(即catch代码块)是在try代码块的后面执行的,然后你再throw一个Exception又是在catch代码块捕捉到异常后执行的,也是说顺序是先try-->catch->throw;
2.
抛出异常异常后—意味着catch代码块后面就不再执行了;
不抛出直接捕捉—意味着catch代码块后面还会继续执行。
java异常抛出异常后捕捉和不抛出直接捕捉有什么区别
1.
其实抛出异常后应该就不能叫捕捉了
—因为捕捉(即catch代码块)是在try代码块的后面执行的,然后你再throw一个Exception又是在catch代码块捕捉到异常后执行的,也是说顺序是先try-->catch->throw;
2.
抛出异常异常后—意味着catch代码块后面就不再执行了;
不抛出直接捕捉—意味着catch代码块后面还会继续执行。
ps:
不知道回答的对不对,不过希望对你有帮助。
java有异常没捕捉为什么和java异常抛出异常后捕捉和不抛出直接捕捉有什么区别的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!