管理学精品课程网站,网络营销策略有哪些方法,苗木网站模版,网站设计制做报价1、 【请尝试解释以下奇怪的现象#xff01;】 int i1, j0, k; ki/j; 代码在运行时会引发异常 上边代码在运行时不会引发异常 浮点数除以0#xff1a;Infinity 可以使用javap去反汇编两个示例程序的.class文件#xff08;一个是AboutException.class#xff0c;另一个是Thr…1、 【请尝试解释以下奇怪的现象】 int i1, j0, k; ki/j; 代码在运行时会引发异常 上边代码在运行时不会引发异常 浮点数除以0Infinity 可以使用javap去反汇编两个示例程序的.class文件一个是AboutException.class另一个是ThrowDemo.class)从中你会有所发现的。 javac 生成 idiv字节码指令 javac 生成ddiv字节码指令 jvm在处理浮点数时生成的是ddiv字节码指令i/00转化为浮点数0.0而0.0是double类型的并不精确所以不会抛出异常。 jvm在处理整数时生成的是idiv字节码指令整数除0就是除0会抛出异常。 JVM在具体实现这两个指令时采用了不同的处理策略导致两段代码运行时得到不同的结果 2、【动手动脑多层的异常捕获-1】 阅读以下代码CatchWho.java写出程序运行结果 运行结果 3、【动手动脑多层的异常捕获-2】 写出CatchWho2.java程序运行的结果 运行结果 4、【动手动脑】 当有多个嵌套的try…catch…finally时要特别注意finally的执行时机。请先阅读 EmbedFinally.java示例再运行它观察其输出并进行总结。特别注意当有多层嵌套的finally时异常在不同的层次抛出 在不同的位置抛出可能会导致不同的finally语句块执行顺序。 源代码 public class EmbededFinally { public static void main(String args[]) { int result; try { System.out.println(in Level 1); try { System.out.println(in Level 2); // result100/0; //Level 2 try { System.out.println(in Level 3); result100/0; //Level 3 } catch (Exception e) { System.out.println(Level 3: e.getClass().toString()); } finally { System.out.println(In Level 3 finally); } // result100/0; //Level 2 } catch (Exception e) { System.out.println(Level 2: e.getClass().toString()); } finally { System.out.println(In Level 2 finally); } // result 100 / 0; //level 1 } catch (Exception e) { System.out.println(Level 1: e.getClass().toString()); } finally { . System.out.println(In Level 1 finally); } } } 测试结果 总结try catch finally 1try抛出一个异常之后程序会跳出try不再执行try后边的语句开始对catch进行匹配处理异常 2try嵌套中抛出的异常只有被处理才可以按顺序抛出下一个异常如果不处理程序就终止; 3)try抛出异常之后就跳出了try语句内层catch无法捕获就继续向外抛所以外层也就有异常外层语句不执行第二个程序 throw new ArithmeticExcepption没有执行。 4第三个程序try第一层第二层没有异常不用捕获执行完之后到第三层除0有异常catch捕获执行第三层的finally然后顺序执行第二层第一层的finally。 总结try catch finally嵌套使用执行顺序 1try语句嵌套从外层到内层执行在try语句中哪一层出错哪一层就抛出异常后边的try语句就不再执行如果该层存在catch就进行相应的捕获有该层的finally也执行除非finally遇到不执行的情况 2如果该层没有catch进行捕获就向外抛出去找catch如果没有catch进行捕获就终止程序。 【课后作业2 动手动脑】 编写一个程序此程序在运行时要求用户输入一个 整数代表某门课的考试成绩程序接着给出“不及格”、“及格”、“中”、“良”、“优”的结论。要求程序必须具备足够的健壮性不管用户输入什 么样的内容都不会崩溃。 import java.util.Scanner; public class Score { public static void main(String[] args) { // TODO Auto-generated method stub boolean ftrue,htrue,qtrue; int Sc0; while(f){ System.out.println(Please input a score:); Scanner snew Scanner(System.in); String sss.nextLine(); int ass.length(); for(int i0;ia;i){ if((ss.charAt(i)0)||(ss.charAt(i)9)) break; else { qfalse; hfalse; } } if(q){ try{ throw new ScException(); } catch(ScException e){ System.out.println(格式错误); } } if(!h) //输入的是数字 { ScInteger.parseInt(ss); if((Sc0)||(Sc100)) { try{ ScException x new ScException(); throw x; } catch(ScException x){ System.out.println(输入异常请输入整数); } } else ffalse; } } if(Sc60) System.out.println(不及格); else if(Sc70) System.out.println(及格); else if(Sc80) System.out.println(中); else if(Sc90) System.out.println(良); else if((Sc100)||(Sc100)) System.out.println(优); } }class ScException extends Exception{ public ScException(){ }} 结果截图: 转载于:https://www.cnblogs.com/DaisyYuanyq/p/7845941.html