java编程那些事pdf下载_《Java编程那点事儿》读书笔记(六)

1.抛出异常:throw 异常对象;

下面的代码是一个进制转换代码,可以转换为2进制和8进制,如果输入其他参数,则抛出异常。

1 public static String transform(int value,intradix){2 if(value <0)3 throw new IllegalArgumentException("需要转换的数字不是自然数!");4

5 if(radix != 2 || radix != 8)6 throw new IllegalArgumentException("进制参数非法!");7

8 StringBuffer sb = newStringBuffer();9 inttemp;10 if(value == 0)11 return "0";12

13 while(value != 0){14 temp = value%radix;15 sb.insert(0, temp);16 value /=radix;17 }18 returnsb.toString();19 }

2.声明异常:声明异常类似于声明药品的副作用,在声明函数的时候同时在函数后面声明该函数可能抛出的异常,这样调用这个函数的程序员就知道这个函数可能出现的异常,就可以提前对这些异常进行处理。上面的函数还可以声明为以下形式:

public static String transform(int value,int radix) throwsIllegalArgumentException{//......

}

3.捕获异常

try{//逻辑代码

}catch(异常类名 参数){//异常处理代码

}finally{//清理代码

}

上述try中的代码是正常执行的代码,如果在执行这段代码的过程中抛出了异常,则根据catch中的异常类名匹配到对应的异常处理代码,最后因为在try中遇到异常时就停止执行try中剩下的代码,而有时候需要做一些后续的清理工作,比如关闭文件,断开网络连接等,所以在finally里面处理这些问题。

String s = "123";try{int n =Integer.parseInt(s);char c = s.charAt(4);

}catch(NumberFormatException e){

System.out.println("该字符串无法转换!");

}catch(StringIndexOutOfBoundsException e){

System.out.println("字符串索引越界!");

}catch(Exception e){

System.out.println("其他异常!");

}

上述代码中Exception e这个异常包含了所有类型的异常,它是上述两个异常的父类,所以它要写在这两个异常的后面。

4.常用异常处理方法

不处理

直接处理:提醒用户输入错误,对值进行修改等

重新抛出:重新抛出一个自定义异常

在方法中声明:即在引起异常的这个方法声明时声明这个异常,使得调用这个方法的程序员去处理这个异常。一个例子如下:

public void test(String s)throwsNumberFormatException{int n =Integer.parseInt(s);

System.out.println(n);

}

上述test方法没有在方法内部处理异常,而是将异常交给调用test函数的程序去处理。

原文:http://www.cnblogs.com/sunshineatnoon/p/3819633.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值