Java:异常处理

白纸画江湖 2019-03-16 02:32:46
/* * 二、如何处理Exception的异常 * java提供的是异常处理的抓抛模型 * 1.“抛”,当我们执行代码时,一旦出现异常,就会在异常的代码处生成一个对应的异常类型的对象,并 * 将此对象抛出。(自动抛出 / 手动抛出) * >一旦抛出此异常类的对象,那么程序就终止执行 * >此异常类的对象抛给方法的调用者。 * 2.“抓”,抓住上一步抛出来的异常类的对象。如何抓?即为异常处理的方式 * java提供了两种方式用来处理一个异常类的对象。 * 处理的方式一: * try{ * //可能出现异常的代码 * }catch(EXception1 e1){ * //处理的方式1 * }catch(EXception1 e2){ * //处理的方式2 * }finally{ * //一定要执行的代码 * } * 注: * 1.finally是可选的 * 2.catch语句内部是对异常对象的处理 * >getMessage()和printStackTrace() * 3.可以有多个catch语句,try中抛出的异常类对象从上往下去匹配catch中的异常类的类型,一旦满足 * 就执行catch中的代码,执行完,就跳出其后的多条catch语句 * 4.如果异常处理了,那么其后的代码继续执行。 * 5.若catch中多个异常类型是“并列”关系,谁上谁下都可以。 * 若是catch中多个异常类型是“包含”关系,须将子类放在父类之上,进行处理,否则报错 * 6.try-catch是可以嵌套的 * * 三、 对于运行时异常来说,可以不显式的进行处理。 * 对于编译时异常来说,必须要显式的进行处理 * */ public class TestException1 { //编译时异常 @Test public void test6() { FileInputStream fis = null; try { File file = new File("hello.txt"); fis = new FileInputStream(file); int b; while((b = fis.read()) != -1) { System.out.print((char)b); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { if(fis != null) { try { fis.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } //常见的运行时异常 //4.空指针异常:NullPointerException @Test public void test5() { try { String str = new String("AA"); str = null; System.out.println(str.length()); } catch (NullPointerException e) { // TODO Auto-generated catch block System.out.println("出现空指针异常"); } } //3.类型转换异常:ClassCastException @Test public void test4() { try { Object obj = new Date(); String str =(String) obj; } catch (ClassCastException e) { System.out.println("出现类型转换异常了"); } catch(Exception e) { e.printStackTrace(); } } //2.算术异常:ArithmeticException @Test public void test3() { try { int i = 10; System.out.println(i/0); } catch (Exception e) { // TODO Auto-generated catch block //e.printStackTrace(); System.out.println(e.getMessage()); } } //1.数组下标越界的异常:ArrayIndexOutOfBoundsException @Test public void test2() { try { int[] a = new int[10]; System.out.println(a[-10]); }catch(Exception e) { System.out.println("出现异常了"); } } @Test public void test1() { Scanner s = new Scanner(System.in); try { int i = s.nextInt(); System.out.println(i); }catch(InputMismatchException e) { System.out.println("出现类型不匹配的异常了! "); } } }
...全文
255 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
LighBlade 2019-03-22
  • 打赏
  • 举报
回复
白纸画江湖 2019-03-18
  • 打赏
  • 举报
回复
来帮砖了

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧