java 异常码_码讲——Java异常

//=====================java异常处理=================

public class ExceptionDemo {

private static final long LEVEL = 20150701;

/*

* 基本异常处理

*/

//@Test

public void test1(){

FileInputStream in =null;

System.out.println("start");

try{

String str1 = null;

System.out.println(str1.length());//发生空指针异常

String str2 = "";

System.out.println(str2.charAt(0));//越界异常

System.out.println("不会被执行");//发生异常之后,catch之前的语句不会被执行

//try内定义的局部变量的作用域只在try中,finally中也不能访问,所以应定义在try外面

in = new FileInputStream("test.txt");

}catch(NullPointerException e){//捕获异常时子类应始终先于父类捕获

System.out.println("捕获空指针异常");

}catch(StringIndexOutOfBoundsException e){//可写多个catch捕获多个异常

System.out.println("捕获下标越界异常");

}catch(Exception e){//应习惯性的总是在最后捕获Exception,防止出现未捕获的异常

System.out.println("捕获其他未处理的异常");

}finally{//通常进行资源的释放工作如关闭打开的文件,删除临时文件 可以直接写在try后

System.out.println("finally始终都会执行");

try {

in.close();//通常使用静态类封装close方法,在那里进行异常的捕获

} catch (IOException e) {

e.printStackTrace();

}

}

System.out.println("end");//catch之后的语句会得到执行,没有try则不会执行

}

/*

* throw通常用于 反馈

* 1、当遇到类满足语法要求,但是不符合业务逻辑要求时,抛出异常,让调用者解决。(你要解决这个问题)

* 2、当前代码遇到异常,但是不负责解决,而是应当将异常反馈给调用者时(你要知道这里出了这个问题)

*/

@Test

public void test2(){

Person p = new Person();

p.setAge(1000);

System.out.println(p.getAge());

}

}

class Person {

int age;

public int getAge() {

return age;

}

public void setAge(int age) {

if(age<0||age>100){

throw new RuntimeException("wrong age");

}

this.age = age;

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值