动手动脑:
1、阅读以下代码(CatchWho.java),写出程序运行结果:
2、写出CatchWho2.java程序运行的结果
3、当有多个嵌套的try…catch…finally时,要特别注意finally的执行时机。 请先阅读 EmbedFinally.java示例,再运行它,观察其输出并进行总结。
当有多层嵌套的finally时,异常在不同的层次抛出 ,在不同的位置抛出,可能会导致不同的finally语句块执行顺序。
4、辨析:finally语句块一定会执行吗? 请通过 SystemExitAndFinally.java示例程序回答上述问题
答:finally语句不一定执行。
5、编写一个程序,此程序在运行时要求用户输入一个 整数,代表某门课的考试成绩,程序接着给出“不及格”、“及格”、“中”、“良”、“优”的结论。 要求程序必须具备足够的健壮性,不管用户输入什 么样的内容,都不会崩溃。
程序源代码:
import javax.swing.*;
public class TryAndCatch {
public static void main(String args[]){
try{
String input=JOptionPane.showInputDialog("请输入分数:");
int score=Integer.parseInt(input);
if(score>=0&&score<60){
JOptionPane.showMessageDialog(null,"不及格","Result",JOptionPane.PLAIN_MESSAGE);
}
else if(score>=60&&score<70){
JOptionPane.showMessageDialog(null,"及格","Result",JOptionPane.PLAIN_MESSAGE);
}
else if(score>=70&&score<80){
JOptionPane.showMessageDialog(null,"中","Result",JOptionPane.PLAIN_MESSAGE);
}
else if(score>=80&&score<90){
JOptionPane.showMessageDialog(null,"良","Result",JOptionPane.PLAIN_MESSAGE);
}
else if(score>=90&&score<=100){
JOptionPane.showMessageDialog(null,"优","Result",JOptionPane.PLAIN_MESSAGE);
}
else{
JOptionPane.showMessageDialog(null,"输入超过限制!分数应为0~100之间的整数","Result",JOptionPane.PLAIN_MESSAGE);
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,"输入有误!分数应为0~100之间的整数","Result",JOptionPane.PLAIN_MESSAGE);
}
}
}
各类运行情况截图: