JDK中定义了大量的异常类,虽然这些异常类可以描述编程时出现的大部分异常情况,但是在程序开发中有时可能需要描述程序中特有的异常情况。为了解决这个问题,在java中允许用户自定义异常,但
自定义异常类必须继承自Exception或其子类。
在实际的开发中,如果没有特殊的要求,自定义的异常类只需继承Exception类,在构造方法中
使用super( )语句调用Exception的构造方法即可。
如果定义了自定义异常,这时就需要用到throw关键字,
throw关键字用于在方法中声明抛出异常的
实例对象,
语法格式:
throw Exception 异常对象(类名)
注意:用
throw关键字抛出异常对象时,需要使用try..catch语句对抛出的异常进行处理,或者在divide方法上使用t
hrows关键字声明抛出异常,由该方法的调用者负责处理。否则,编译异常,不通过。
例子:
public class DivideByMinusException extends Exception
{
public DivideByMinusException(){
super(); //调用Exception的无参构造方法
}
public DivideByMinusException(String message){
super(message); //调用Exception的有参构造方法
}
}
public class Example
{
public static void main(String[] args)
{
try{
int result=divide(4,-2);
System.out.print(result);
}catch(DivideByMinusException e){
System.out.print(e.getMessage());
}
}
//throws关键字声明抛出自定义异常
public static int divide(int x,int y)
throws DivideByMinusException{
if(y<0){
//使用throw关键字声明异常对象
throw new DivideByMinusException("被除数是负数");
}
int result=x/y;
return result;
}
}