文档详情

第10章-异常处理机制.ppt

发布:2018-10-19约1.53万字共49页下载文档
文本预览下载声明
在try-catch块后加入finally块,可以确保无论是否发生异常,finally块中的代码总能被执行 try 块 finally 块 catch 块 无异常 有异常 try-catch-finally 四、异常处理 public class Test4 { public static void main(String[] args) { try { Scanner in = new Scanner(System.in); System.out.print(请输入被除数:); int num1 = in.nextInt(); System.out.print(请输入除数:); int num2 = in.nextInt(); System.out.println(String.format(%d / %d = %d, num1, num2, num1/ num2)); } catch (Exception e) { System.err.println(“出现错误:被除数和除数必须是整数, +除数不能为零。); System.out.println(e.getMessage()); } finally { System.out.println(感谢使用本程序!); } } } try-catch-finally 输入:200 40 输入:200 0 第一种情况: 无异常 第二种情况: 有异常 演示示例:使用try-catch-finally处理异常 四、异常处理 finally块中语句不执行的唯一情况 异常处理代码中执行System.exit(1)退出Java虚拟机 try-catch-finally public class Test5 { public static void main(String[] args) { try { Scanner in = new Scanner(System.in); System.out.print(请输入被除数:); int num1 = in.nextInt(); System.out.print(请输入除数:); int num2 = in.nextInt(); System.out.println(String.format(%d / %d = %d, num1, num2, num1/ num2)); } catch (Exception e) { System.err.println(出现错误:被除数和除数必须是整数, + 除数不能为零); System.exit(1); // finally语句块不执行的唯一情况 } finally { System.out.println(感谢使用本程序!); } } } 四、异常处理 public void method(){ try { // 代码段 // 产生异常(异常类型2) } catch (异常类型1 ex) { // 对异常进行处理的代码段 } catch (异常类型2 ex) { // 对异常进行处理的代码段 } catch (异常类型3 ex) { // 对异常进行处理的代码段 } // 代码段 } 一段代码可能会引发多种类型的异常 当引发异常时,会按顺序来查看每个 catch 语句,并执行第一个与异常类型匹配的catch语句 执行其中一条 catch 语句后,其后 catch 语句将被忽略 try 与异常类型1不匹配 try-catch 块后的代码段 发生异常 产生异常对象 catch 与异常类型2匹配 catch catch 程序继续执行 进入catch块 多重catch块 四、异常处理 多重catch块 2-2 public class Test6 { public static void main(String[] args) { try { Scanner in = new Scanner(System.in); System.out.print(请输入被除数:); int num1 = in.nextInt(); System.out.print(请输入除数:); int num2 = in.nextInt(); System.out.println(String.format(%d / %d = %d, num1, num2, num1/ num2)); } c
显示全部
相似文档