java异常
目录
异常类型
- 检查性异常 最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。
- 运行时异常 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略(Throw)。
- 错误 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。
异常类Exception
构造方法
- public Exception()
构建一个新的异常,以 null作为其详细信息。 - public Exception(String message)
使用指定的详细消息构造新的异常。 - public Exception(String message, Throwable cause)
构造一个新的异常与指定的详细信息和原因。 - public Exception(Throwable cause)
构造一个新的异常与指定原因。 - protected Exception(String message, Throwable cause,boolean enableSuppression,boolean writableStackTrace)
构造一个新的异常,其中包含指定的详细消息,启用或禁用抑制功能,启用或禁用可写栈跟踪。
常用方法
- public String getMessage()
返回关于发生的异常的详细信息。这个消息在Throwable 类的构造函数中初始化了。 - public Throwable getCause()
返回一个Throwable 对象代表异常原因。 - public String toString()
使用getMessage()的结果返回类的串级名字。 - public void printStackTrace()
打印toString()结果和栈层次到System.err,即错误输出流。 - public StackTraceElement [] getStackTrace()
返回一个包含堆栈层次的数组。下标为0的元素代表栈顶,最后一个元素代表方法调用堆栈的栈底。 - public Throwable fillInStackTrace()
用当前的调用栈层次填充Throwable 对象栈层次,添加到栈层次任何先前信息中。
处理异常
try-catch
|
|
throws
|
|
注意事项
throws在方法名后边 catch 不能独立于 try 存在。 在 try/catch 后面添加 finally 块并非强制性要求的。 try 代码后不能既没 catch 块也没 finally 块。 try, catch, finally 块之间不能添加任何代码。
自定义异常
|
|
运行结果
|
|
参考:https://www.runoob.com/java/java-exceptions.html