Java面向对象设计 - Java异常抛出
如果一段代码可能抛出一个已检查的异常,我们有两个选择:
- 使用try-catch块处理已检查的异常。
- 在方法/构造函数声明中用throws子句指定。
语法
throws子句的一般语法是
<modifiers> <return type> <method name>(<params>) throws<List of Exceptions>{ }
关键字throws用于指定throws子句。
throws子句放在方法参数列表的右括号之后。
throws关键字后面是以逗号分隔的异常类型列表。
例子
下面的代码展示了如何在方法的声明中使用throws子句。
import java.io.IOException; public class Main { public static void readChar() throws IOException { int input = System.in.read(); } }
这里是显示如何使用它的代码。
例2
import java.io.IOException; public class Main { public static void readChar() throws IOException { int input = System.in.read(); System.out.println(input); } public static void main(String[] args) { try { readChar(); } catch (IOException e) { System.out.println("Error occurred."); } } }
上面的代码生成以下结果。
例3
我们可以继续抛出异常。
import java.io.IOException; public class Main { public static void readChar() throws IOException { int input = System.in.read(); System.out.println(input); } public static void main(String[] args) throws IOException { readChar(); } }
上面的代码生成以下结果。
抛出异常
我们可以使用throw语句在我们的代码中抛出异常。
throw语法的语法是
throw <A throwable object reference>;
throw是一个关键字,后面是一个对可抛出对象的引用。
throwable对象是一个类的实例,它是Throwable类的子类,或Throwable类本身。
以下是throw语句的示例,它抛出一个IOException:
// Create an object of IOException IOException e1 = new IOException("File not found"); // Throw the IOException throw e1;
以下是throw语句的示例,它抛出一个IOException:
// Throw an IOException throw new IOException("File not found");
如果我们抛出一个被检查的异常,我们必须使用try-catch块来处理它,或者在方法或构造函数声明中使用throws子句。
如果您抛出未经检查的异常,这些规则不适用。