【Java】异常处理—— 问题式剖析

前言:


          大部分程序员对异常都不会太陌生,小编对它也是又爱又恨!异常处理呢在我看来可能有两个角度,首先是异常出现了,我们去解决异常。但又因为对一个系统来说,抛出大量异常是有问题,其次是正因为这个原因,我们应该从程序开发角度尽可能的控制异常发生的可能,尽可能就是未雨绸缪,在其未出现之前就处理掉!

         各种编程语言都会有异常,那么什么是异常呢?Java异常是否有其特有的特点?如何处理这些异常?设计良好的程序应该在异常发生时提供处理错误的方法,使得程序不会因为异常的发生而阻断或产生不可预见的结果,也就是程序的健壮性,那对于这些问题我们心中是否有一个自己的见解呢?


正文


   什么是异常?


          异常和错误是有区别的,异常是程序在执行时发生的事件,程序编译通过后,并不意味这运行时就能得到正确的结果,很可能由于编程时考虑不周或运行时遇到一些特殊情况,结果出现中断程序正常运行的情况。Java把这列导致程序中断运行的错误



   Java为什么要引入异常?

     

         Java异常处理的目的是提高程序的健壮性,你可以在catch和finally代码块中给程序一个修正机会,使得程序不因异常而终止或者流程发生以外的改变。同时,通过获取Java异常信息,也为程序的开发维护提供了方便,一般通过异常信息就很快就能找到出现异常的问题(代码)所在。   

 

     异常分类?


    

 Error:是错误,虚拟机生成并抛出,程序可以不对其进行处理。

 Exception:异常类的父类,子类对应各种各样可能出现的异常事件,一般需用户显示的声明或捕获。

   

     如何处理?


        1、在方法中用try...catch语句捕获并处理异常,catch语句可以有多个,用来匹配多个异常。例如:
 
public void p(int x){  
 try{  
  ...  
 }catch(Exception e){  
     catch(Exception e){  
  …  
 }  
 }finally{  
  ...  
 }  
}  
      2、 对于处理不了的异常或者要转型的异常,在方法的声明处通过throws语句抛出异常。例如:
  
public void test1() throws MyException{  
 ...  
 if(....){  
  throw new MyException();  
 }  
}   

  异常处理的一般原则?

   

  1、能处理就早处理,抛出不去还不能处理的就想法消化掉或者转换为RuntimeException处理。因为对于一个应用系统来说,抛出大量异常是有问题的,应该从程序开发角度尽可能的控制异常发生的可能。   

  2、对于检查异常,如果不能行之有效的处理,还不如转换为RuntimeException抛出。这样也让上层的代码有选择的余地――可处理也可不处理。

 3、对于一个应用系统来说,应该有自己的一套异常处理框架,这样当异常发生时,也能得到统一的处理风格,将优雅的异常信息反馈给用户。

 4、一般不直接在main语句后面throw

        5、异常,先抓小的,再抓大的


总结:

 

    异常能处理就处理,不能处理就抛出,最终没有处理的异常JVM会进行处理。Java异常映射到我们之前做的系统中写的try catch语句,通过以前写的程序中抛异常,处理异常很容易理解Java的异常,也很简单。


    对于一个应用系统,设计一套良好的异常处理体系很重要,这样保证了我们程序的健壮性,这就是为什么我们写代码的时候要加上异常处理,抛异常;有时候还要对出现的错误进行收集,优化系统,处理问题。


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
Java异常处理机制是一种重要的机制,用于检测和处理程序执行期间可能出现的错误和异常情况。Java提供了多种异常处理机制,包括try-catch块、finally块、throws关键字和try-with-resources语句。通过合理地使用这些机制,我们可以编写更加健壮、可靠的程序。\[1\] 在Java中,异常可以是函数中的语句执行时引发的,也可以是程序员通过throw语句手动抛出的。无论是哪种情况,一旦在Java程序中产生了异常,就会用一个对应类型的异常对象来封装异常,JRE会试图寻找异常处理程序来处理异常。Throwable类是Java异常类型的顶层父类,一个对象只有是Throwable类的实例,才能被异常处理机制识别。JDK中内建了一些常用的异常类,我们也可以自定义异常。\[3\] 在Java中,异常处理的策略是让执行流恢复到处理了异常的catch块后接着执行,这种策略被称为终结异常处理。通过在try块中捕获异常并在catch块中处理异常,我们可以避免程序因为异常而终止。\[2\]在catch块中,我们可以根据具体的异常类型来执行相应的处理逻辑,比如打印错误信息、记录日志或者进行其他操作。 总之,Java异常处理机制是一种重要的机制,通过合理地使用try-catch块、finally块、throws关键字和try-with-resources语句,我们可以处理程序执行期间可能出现的错误和异常情况,使程序更加健壮、可靠。 #### 引用[.reference_title] - *1* [Java异常处理的机制是什么?](https://blog.csdn.net/ljh_23333/article/details/130450585)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [最全最详细的Java异常处理机制](https://blog.csdn.net/ligonglanyuan/article/details/122714586)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值