Throwable 类是 Java 语言中所有错误或异常的父类。只有当对象是此类(或其子类之一)的实例时,才能通过 Java 虚拟机或者 Java throw 语句抛出。类似地,只有此类或其子类之一才可以是 catch 子句中的参数类型。
Throwable 类及其子类有两个构造方法,一个不带参数,另一个带有 String 参数,此参数可用于生成详细消息。此外,这些子类很可能有与其相关联的 cause,因此也应有两个构造方法,一个带 Throwable (cause),一个带 String(详细消息)和 Throwable (cause)。
方法如下:
返回类型 | 方法名称 | 方法说明 |
---|
Throwable | fillInStackTrace() | 在异常堆栈跟踪中填充。 |
Throwable | getCause() | 返回此 throwable 的 cause;如果 cause 不存在或未知,则返回 null。 |
String | getLocalizedMessage() | 创建此 throwable 的本地化描述。 |
String | getMessage() | 返回此 throwable 的详细消息字符串。 |
StackTraceElement[] | getStackTrace() | 提供编程访问由 printStackTrace() 输出的堆栈跟踪信息。 |
Throwable | initCause(Throwable cause) | 将此 throwable 的 cause 初始化为指定值。 |
void | printStackTrace() | 将此 throwable 及其追踪输出至标准错误流。 |
void | printStackTrace(PrintStream s) | 将此 throwable 及其追踪输出到指定的输出流。 |
void | printStackTrace(PrintWriter s) | 将此 throwable 及其追踪输出到指定的 PrintWriter。 |
void | setStackTrace(StackTraceElement[] stackTrace) | 设置将由 getStackTrace() 返回,并由 printStackTrace() 和相关方法输出的堆栈跟踪元素。 |
String | toString() | 返回此 throwable 的简短描述。 |
对于处理不了的异常 或者需要转型的异常,在方法的声明处通过throws语句声明抛出异常,而throw语句就是用于在方法内抛出一个异常。对于在方法中可能出现的异常,如果不想在方法中捕获,可以使用throws声明一个抛出异常。例如:
public int read() throws IOException{
}
public int write() throws IOException,
IllegalAccessException{
}
throw用于在方法体内手动抛出一个异常。
语法:throw 异常名;
例如:
public class Test{
public static void main(String[] args){
try{
System.out.println("从这里开始");
throw new Exception("用户产生异常");
}catch(Exception e){
System.out.println("已经捕获异常");
}
}
}
因为已经在方法中处理了异常,所以不需要在方法声明处使用throws。