/*处理字符串,返回处理后的字符串*/
String a(String str0){
String str=str0;
try{
//操作字符串
}catch(Exception ex){
//写日志
}
return str;
}
void b(String sf){
     String str=a(sf);
     //利用str 做一系列的处理
}
我想问的是,加入我捕获了这个异常之后,该怎么处理?
难道就是写日志吗?我觉得解决不了问题哦
执行a(sf)后肯能不是我想要的值,但是这个程序会继续执行下去,那继续处理下去的不是个bug啊

解决方案 »

  1.   

    记录日志有助于你追踪异常,一般情况下,出现异常之后如果有原始数据就可以自己写测试程序了,方便你找到异常的问题啊。所以这个地方你最好是记录一下。至于你说怎么处理异常,这就要看你程序的需要了,如果处理不成功就返回null,这样接下来的程序检测是null就不要在执行就好了。
      

  2.   

    不会终止阿,只要你处理了异常,因为runtime exception不会在编译的时候被检测出来,但是根据常识,你知道可能会在这里出现运行异常(比如你知道除数不能为0,但是虚拟机载编译的时候不知道,你就提前捕获该异常,那运行的时候就不会停止了),那你就提前在代码中捕获,然后处理,只要你不让程序停,她就不会停啊
      

  3.   

    这个完全看你的需求阿,异常捕获不只是用来防止程序停止,她同样可以用来当代码使用
    就拿你这个例子,你在b中需要的str可以提前在a中处理掉,这样可以降耦,也提高了a的聚合,这是java的基本,当然这个例子有点简单。
      

  4.   

    能用ifelse的别用trycatch,很影响效率的
    这里又不是运行期异常,一般用不到捕捉异常把