Java中的自定义异常
在Java中,自定义异常是一种用于表示特定错误或意外情况的异常类型。它们提供了一种简单、可读性高的方式来处理异常,并允许开发人员根据需要添加自己的异常类型。
要创建自定义异常,可以继承Java中现有的Exception或RuntimeException类之一。通常情况下,如果异常是由于程序中的错误导致的,应该继承Exception类;如果异常是由于运行时错误导致的,则应该继承RuntimeException类。
抛出异常
下面我们就以一个编译时异常为例写一个示例:
public class ex extends Exception{
public ex(){
super();
}
public ex(String str){
super(str);
}
}
首先在上述代码中,我们定义了一个名为ex的自定义异常,它继承了Java中现有的Exception类,并重写了其构造函数以接受自定义消息。
public class UseEx {
public void test() throws ex{
System.out.println("这个程序没有错误!");
throw new ex("这是一个自定义异常!");
}
}
然后写一个方法,用于实例化ex
public class text {
public static void main(String[] args) throws ex {
UseEx UE = new UseEx();
UE.test();
}
}
最后写一个main方法调用自定义异常的方法。
运行结果
这个程序没有错误!
Exception in thread “main” error.ex: 这是一个自定义异常!
at error.UseEx.test(UseEx.java:6)
at error.text.main(text.java:6)
这样我们就可以“抛出“一个异常。
捕获异常
此外我们还可以用try-catch的方法来”捕获“异常:
try {
FileInputStream fi=new FileInputStream("asdasd");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
使用try-catch时程序并不会终止,在捕获之后可以继续运行,但是可以打印报错信息。
java.io.FileNotFoundException: asdasd (系统找不到指定的文件。)
at java.base/java.io.FileInputStream.open0(Native Method)
at java.base/java.io.FileInputStream.open(FileInputStream.java:216)
at java.base/java.io.FileInputStream.(FileInputStream.java:157)
at java.base/java.io.FileInputStream.(FileInputStream.java:111)
at A.Test.main(Test.java:21)