下面是书本上关于异常处理的一个示例代码:
public class Test{
public static void main(String[] args) {
TestArray a=new TestArray();
try {
a.ml();
} catch (ArrayIndexOutOfBoundsException e1) {//处理下标越界异常
// TODO: handle exception
System.out.println("数组越界");
}
catch (ArithmeticException e2) {//处理分母为零的运算错误
// TODO: handle exception
System.out.println("分母为零");
e2.printStackTrace();//显示错误语句的调用过程
}
}
static class TestArray{
private int i;
private int[] array={1,2,3,4,5};
void ml(){
while(true){
i=(int) (Math.random()*10);
System.out.println("以随机数生成的除法结果为:"+100/i);
System.out.println("数组array["+i+"]的值为"+array[i]);
}
}
}
}
<p>
下面是自定义异常的事例(定义了一个队列操作的异常):
class EmptyQueueExeption extends Exception{</p>
Queue sourceQueue;
public EmptyQueueExeption(Queue q) {
super("队列已空!");
sourceQueue=q;
// TODO Auto-generated constructor stub
}
public String toString(){
return("队列对象"+sourceQueue.toString()+"执行出队操作时引发自定义异常");
}
}
用 throw 语句抛出异常的语法格式为: 修饰符 返回类型 方法名(参数列表) throws 异常类名列表
{
...
throw 异常对象;
...
}