
异常:程序运行的结果报告发生了算数异常,系统执行不下去,提前结束,这种情况就是所谓的异常。
一、捕捉异常的方法

1、try{}catch{}
try
{
// 程序代码
}catch(ExceptionName e1)
{
//Catch 块
}
//把可能发生异常的语句放在try { ... }中,然后使用catch捕获对应的Exception及其子类。
2、throws和throw
区别:throws用于方法的标签上,throw用于方法中
抛出异常思路:当不知道如何解决异常时候时候,由异常方法的上一级调用者解决,如果上一级无法解决,再往上抛,如果最终于main方法也无法解决,该异常由JVM处理
注意:使用throw\throws抛出异常之后,该异常希望它的调用者解决异常,它的调用者要么捕获异常,要么继续抛出。
二、声明自定义异常
步骤:
自定义的异常类要继承Exception;如果希望自定义运行期异常,则应该继承RuntimeException。继承时候需要一个无参构造器和有参(字符串参数的构造器),有参构造器中字符串就是异常的字符描述(getMessage()的返回值)。
(1)、创建自定义异常类
(2)、在方法中通过throw关键字抛出异常对象
(3)如果在当前抛出异常的法法中处理异常,可以使用try—catch语句块捕获并处理,否则在方法的声明除通过throw关键字指明抛出给方法调用者的异常,继续下一步异常。
三、异常链
Catch和throw配合使用,catch块捕获真实的异常,使用p.printStackTrace(PrintStream)方法把异常打印到指定输出流中,然后使用throw重新抛出一个异常,这种处理方式被称为异常转译。好处:对于普通用户来说,这些异常对他们来说没有任何帮助;对于恶意用户来说,把异常暴露出来不安全。
四、异常方法
下面的列表是 Throwable 类的主要方法:
| 序号 | 方法及说明 |
|---|---|
| 1 | public String getMessage() 返回关于发生的异常的详细信息。这个消息在Throwable 类的构造函数中初始化了。 |
| 2 | public Throwable getCause() 返回一个 Throwable 对象代表异常原因。 |
| 3 | public String toString() 返回此 Throwable 的简短描述。 |
| 4 | public void printStackTrace() 将此 Throwable 及其回溯打印到标准错误流。。 |
| 5 | public StackTraceElement [] getStackTrace() 返回一个包含堆栈层次的数组。下标为0的元素代表栈顶,最后一个元素代表方法调用堆栈的栈底。 |
| 6 | public Throwable fillInStackTrace() 用当前的调用栈层次填充Throwable 对象栈层次,添加到栈层次任何先前信息中。 |
版权声明:本文为ww981580010原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。