预定义异常类
(1)Exception类的子类
ArithmeticException、ArrayIndexOutOfBoundsException、ArrayStoreException、FileNotFoundException、NullPointerException、NumberFormatException、OutOfMemoryException、……
(2)多个catch的匹配
多个catch的匹配
try{
可能引发异常的语句
}
catch(可能抛出的异常类的对象1){
处理此种类型异常的语句
}
catch(可能抛出的异常类的对象2){
处理此种类型异常的语句
}
finally{
不管是否有异常都执行的语句
}
匹配规则
• 实现不同的异常进行不同的处理
• 异常发生后,按照 次序 依次进行匹配
• 一旦匹配成功,将不再与后续的catch进行匹配
调用系统型异常
try
{
//代码区
}
catch(Exception e)
{
//异常处理
}
finally
{
}
try块中的错误,应该被catch块所捕获,catch是用来提取异常信息的,你可以在catch部分加上一句System.out.println(e.getMessage());,如果出现异常可以把异常打印出来.
自定义异常
所有的异常类都是系统中Exception中的子类
class MyException extends Exception
{
String message;
public MyException(int parameter)
{
message=parameter+"参数不符合规定范围";
}
public String getMessage()
{
return message;
}
}
class MyAdd
{
private int x;
public void add (int newx)
{
try
{
if(newx<0||newx>100)
{
throw new MyException(newx);//自定义抛出异常,new最容易丢失
}
else x=newx+x;
}
catch(MyException e)
{
System.out.println(e.getMessage());
}
}
public int getX()
{
return x;
}
}
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
MyAdd x;
MyAdd y;
y=new MyAdd();
x=new MyAdd();
x.add(10);
y.add(-10);
System.out.println("计算结果 :"+x.getX());
System.out.println("计算结果 :"+y.getX());
}
}