1、请阅读并运行AboutException.java示例,然后通过后面的几页PPT了解Java中实现异常处理的基础知识。
答:1.抛出异常
当程序发生异常时,产生一个异常事件,生成一个异常对象,并把它提交给运行系统,再由运行系统寻找相应的代码来处理异常。这个过程称为抛出(throw)一个异常。一个异常对象可以由Java虚拟机生成,也可以由运行的方法生成。异常对象中包含了异常事件类型、程序运行状态等必要的信息。
2.捕获异常
异常抛出后,运行时系统从生成对象的代码开始,沿方法的调用栈逐层回溯查找,直到包含相应处理的方法,并把异常对象交给该方法为止,这个过程称为捕获(catch)一个异常。
简单地说,发现异常的代码可以“抛出”一个异常,运行系统“捕获”该异常,交由程序员编写的相应代码进行异常处理。
2、 辨析:finally语句块一定会执行吗?
答:否,只有与 finally 对应的 try 语句块得到执行的情况下finally 语句块才会执行,或是当执行try语句时终止虚拟机命令也会不执行finally语句。
3、编写一个程序,此程序在运行时要求用户输入一个 整数,代表某门课的考试成绩,程序接着给出“不及格”、“及格”、“中”、“良”、“优”的结论。
要求程序必须具备足够的健壮性,不管用户输入什 么样的内容,都不会崩溃。
源代码:import javax.swing.JOptionPane;
public class Score {
public static void main(String args[])
{
String output = "";
int a =1;
while(a==1)
{
String input = JOptionPane.showInputDialog("请输入成绩(0`100):");
try
{
int score = Integer.parseInt(input);
if(score <0||score>100)
{
JOptionPane.showMessageDialog(null,"错误请重输");
a=1;
}
else if(score<60)
{
output = "不及格";
a=0;
}
else if(score<=70)
{
output ="及格";
a=0;
}
else if(score<=80)
{
output = "中";
a=0;
}
else if(score<=90)
{
output = "良";
a=0;
}
else if(score<=100)
{
output ="优";
a=0;
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,"errors occur!请输入整数");
a=1;
}
}
JOptionPane.showMessageDialog(null,output);
System.exit(0);
}
}
运行截图: