如题

解决方案 »

  1.   

    异常相对于boolean(或者说0和非0)是啥意思?
      

  2.   

    楼主问的是否是抛出一个异常好,还是用err_code来代表这个异常好?
    比如NumberFormatException在你的某个方法里面对应的可能是你的某个异常code:
    public static final int ERR_ID_VALUE = 100;  
    只要这个方法返回100,你就知道是方法的参数ID传入的是个不能转为数字的字符。本人觉得,除非业务逻辑要求你必须处理所有的异常不能抛出异常,即方法后面不能带 throws,否则,最好还是抛出异常。这样对于定位错误(特别是一些底层包)是有好处的。而且作为coding的人来说,看异常比对照那个异常代码表来找是什么意思,可能更习惯,也能更快定位错误。
      

  3.   

    楼主是想问在没有异常捕获机制的语言中使用返回值来判断异常和在java语言中用try-catch语句捕获异常有什么区别,后者的优势是什么。
    不知道楼主是不是这个意思?
      

  4.   

    异常,顾名思义,是程序产生了不可预期的错误。它应该不属于你的程序逻辑要处理的事情。
    打个最简单的比方,你有一个如下的方法:
        public int add(int x, int y){
         if(y > Integer.MAX_VALUE - x ){
         throw new IllegalArgumentException();
         }
         return x + y;
        }
    这个方法计算x与y的和,并返回。谁都能看懂。
    如果x+y的值溢出了的话,抛出一个错误参数的异常。
    用boolean代替异常的话,你觉得这个方法的返回值应该如何定义呢?另外,一个boolean又如何将异常发生时候的具体信息带回给主控程序呢?
      

  5.   

    没看懂楼主的题意。
    某些时候异常是无可替代的。因为Java不允许方法返回与其声明中的类型不相容的值,就像楼上的例子中那样,方法声明返回int,你是不能返回boolean的,编译器不会让你编译,这个时候只能采取异常策略。