JAVA抛出异常的三种形式详解
在Java中,任何程序都可能出现异常情况,这时候就需要通过抛出异常来处理,避免程序崩溃。在Java中,抛出异常有三种形式:抛出自定义异常,抛出Java API提供的异常和抛出运行时异常。
1. 抛出自定义异常
抛出自定义异常意味着创建一个新的异常类,该类继承自Exception或RuntimeException。创建自定义异常的方式如下:
public class CustomException extends Exception {
public CustomException(String message) {
super(message);
}
}
抛出自定义异常的方式如下:
public class ExceptionDemo {
public void doSomething() throws CustomException {
// do something
throw new CustomException("something went wrong");
}
}
在这个例子中,doSomething()方法抛出了CustomException异常。在该方法被调用时,如果发生异常,会将异常传递给调用它的方法。异常处理的方式如下:
public class Main {
public static void main(String[] args) {
ExceptionDemo demo = new ExceptionDemo();
try {
demo.doSomething();
}
catch (CustomException e) {
e.printStackTrace();
}
}
}
2. 抛出Java API提供的异常
Java API提供了许多异常类,例如FileNotFoundException、IOException等等。抛出Java API提供的异常意味着使用Java API中提供的异常类来处理异常情况。下面是一个读取文件的例子,如果文件不存在,就会抛出FileNotFoundException异常:
import java.io.*;
public class FileDemo {
public void readFile() throws FileNotFoundException {
File file = new File("file.txt");
BufferedReader br = new BufferedReader(new FileReader(file));
// do something with the file
}
}
在该例子中,readFile()方法抛出了FileNotFoundException异常。异常处理的方式如下:
public class Main {
public static void main(String[] args) {
FileDemo demo = new FileDemo();
try {
demo.readFile();
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
3. 抛出运行时异常
运行时异常是一种特殊的异常,可以在程序的任意地方抛出。它们不需要显式地在方法声明中抛出,并且可以被捕获或传播。下面是抛出一个自定义的运行时异常的例子:
public class ArithmeticDemo {
public void doSomething(int n) {
if (n == 0) {
throw new ArithmeticException("division by zero");
}
int result = 10 / n;
}
}
在该例子中,如果n等于0,就会抛出一个ArithmeticException异常。异常处理的方式如下:
public class Main {
public static void main(String[] args) {
ArithmeticDemo demo = new ArithmeticDemo();
try {
demo.doSomething(0);
}
catch (ArithmeticException e) {
e.printStackTrace();
}
}
}
在这个例子中,我们捕获了ArithmeticException异常,并打印了它的堆栈信息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JAVA抛出异常的三种形式详解 - Python技术站