码讲——Java异常
2015-07-01 22:51
417 查看
//=====================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; } }
相关文章推荐
- 码讲——Java集合基础
- 深入Java集合学习系列:HashMap的实现原理
- JavaEE——day01——html
- java中用数组模拟的酒店管理系统
- 码讲——Java字符流
- Java Servlet 技术简介
- Spring IOC-BeanFactory的继承体系结构
- Java文件操作
- Spring的事务管理的几种方法
- Struts2开发遇到的问题之多文件上传
- Java内部类详解
- 2015070103 - EffactiveJava笔记 - 第47条 了解和使用类库(2)
- 排序算法之归并排序Java版
- 排序算法之快速排序Java版
- Java每日编程day2
- Java基础之简单内存管理
- 使用java的Calendar对象获得当前日期的上几个度开始、结束时间
- 排序算法之冒泡排序Java版
- Java面向对象之类
- 2015070102 - EffactiveJava笔记 - 第47条 了解和使用类库(1)