请问各位大虾。。特别是有经验的大虾。。项目中的异常一般是怎么处理的啊,如果是方法名后throws的异常,然后抛出,那迟早还是要try catch的是吗?还有,碰到异常以后,怎么处理异常,我的意思是是不是在自己的异常类里定义 如何处理异常,还是只是捕获后再调用别的解决异常的类或者方法,。我是刚学的白痴问题希望大家不要见笑

解决方案 »

  1.   

    一般在应用里面都要把异常包装一下。还有就是现在基本上都建议继承RuntimeException。
    包装了以后,对异常的处理就要分类了。
    一类是可以预料而且可以处理的异常,对这类异常往往是捕获后要在现实层给出相应的提示。而且这类异常一般不再抛出。
    一类是可以预料的但是无法处理的异常,比如,由于网络问题导致数据库连接中断等,这类异常一般捕获后在此抛出,但是在现实层也要给出提示
    最后一类是无法预料,当然也就无法捕获和处理的异常
      

  2.   

    一般在应用里面都要把异常包装一下。还有就是现在基本上都建议继承RuntimeException。
    包装了以后,对异常的处理就要分类了。
    一类是可以预料而且可以处理的异常,对这类异常往往是捕获后要在现实层给出相应的提示。而且这类异常一般不再抛出。
    一类是可以预料的但是无法处理的异常,比如,由于网络问题导致数据库连接中断等,这类异常一般捕获后在此抛出,但是在现实层也要给出提示
    最后一类是无法预料,当然也就无法捕获和处理的异常。这类异常一般是bug
      

  3.   

    谢谢FredWorks弱弱的问一下什么叫把异常包装一下。
      

  4.   

    其实就是根据自己的应用需要,设计一套有效的异常结构。
    然后在代码中,把原始的NullPointException啊,RemoteException啊等等东西捕获后,再加上有用的信息,抛出一个自己定义的异常。一般而言,我们不应当让客户看到任何来自底层的异常,但是在异常发生的时候,我们又必须有选择的让用户看到有意义的信息。同时在后台,我们必须保留所有底层的异常的log。
    这就是我们在Java JDK既有异常的基础上还要设计一套异常结构的原因。
      

  5.   

    异常无非出现在编写方法的时候。我们可以进行两种操作:1.可以选择将异常抛出由调用方法的人进行处理,就是在编写方法的时候写上throws XXX,java的异常处理机制是链式处理,可以一直抛出,最后由JVM来处理,不过很少这样做;
    2.也可以选择自己写异常处理语句,就是try{1}catch(2){3}语句了,2处能够捕获一定的异常的实例,然后调用3的处理语句。异常就是JVM与用户的一种交互,所以最简单的异常处理就是通知用户是在那里出现了异常。你可以选择直接打印出异常栈(e.printStackTrace),也可以选择自己写一个异常类(继承自Exception,写两个构造函数),然后自己输出异常信息。