嵌套和内部类.pdf
文本预览下载声明
1.00 第16讲
异常
嵌套和内部类
下次阅读:Big Java:4.1-4.10节
异常:Try,throw,catch
异常就是Java如何处理方法中出现的方法无法处理的错误
Java异常的机制有3点:
-Throw (方法所做的)
方法检测出错误,无法处理
方法抛出一个异常
-Try字块(方法的调用者首先做的)
方法调用可能会抛出一个异常,该异常位于调用方法的一个try
字块中(由花括号定义)
-Catch字块在try字块之后(调用者之后做的事)
每个字块包含给出类型的异常处理器
捕获(catch )异常
import javax.swing.*;
public class BadInput {
public static void main(String[] args) {
while (true) {
String answer = JOptionPane.showInputDialog(“Enter an
integer(0 to quit)”);
int Answer = -1;
try { //Try字块
intAnswer = Integer.parseInt(answer); //Throw
}catch(NumberFormatException e) { //Catch字块
JOptionPane.showMessageDialog(null, “Not an integer”);
}
if (intAnswer = = 0)
break;
}
System.exit(0);
}
}
练习
从Web站点下载BadInput
注释出:
-Try字块( ‘try’和花括号;留下intAnswer= …)
-Catch字块(移除整个字块,包括代码)
-保存/编译
输入非整数。看会怎么样?
-如果用户输入一个非整数,例如Cathy会怎么样?
-这就是我们到目前为止关于输入要完成的吗?
然后移除注释,再次存储try/catch字块
-保存/编译
-输入非整数
-会怎样?
-这更好些吗?
抛出(throw )异常
public static double average(double[] args)
throws IllegalArgumentException {
if(dArray.length = = 0)
throw new IllegalArgumentException();
//异常是对象!
double sum = 0.0;
for(int i = 0; i dArray.length; i++)
sum += dArray[i];
return sum/ dArray.length
}
练习
下载类AverageTest ,其中有:
显示全部