JavaSE学习11(异常)

mac2024-05-06  30

异常

1.1 异常概述

异常体系 throwable 分为 error 和Exception Exception又分为 RuntimeException和 非RuntimeException error是严重问题,不处理 Exception : 异常类,表示程序本身可以处理的问题 RuntimeException: 编译期不检查,出问题后需要我们回来修改代码 非RuntimeException: 编译器就要进行处理,否则程序不能通过编译

1.2 JVM的默认处理方案

如果程序出现了问题,我们没有做任何处理,最终JVM会做默认的处理 1.把异常的名称,异常原因以及异常出现的位置等信息输出在控制台 2.程序停止执行

1.3 异常处理

如果程序出现了异常,我们要自己来处理,又两种方案: 1,try...catch... 2, throws

1.4 try…catch…处理

格式:
try{ 可能出现异常的代码; }catch(异常类名 变量名){ 异常处理的代码; }
执行流程:
程序从try里的代码开始执行 出现异常时会自动生成一个异常类对象,该对象会被提交给JVM 接收到异常对象时,会到catch中去找匹配的异常类,找到后进行异常的处理 执行完毕,程序继续往下执行。

1.5 Throwable 的成员方法

public String getMessage() 返回此throwable的详细消息字符串 public String toString() 返回可抛出的简短描述 public void printStackTrace() 把异常的错误信息输出在控制台 一般使用 printStackTrace() 信息比较全面

1.6 编译时异常和运行时异常的区别

Java中的异常分为两大类 编译时异常: 受检异常 必须处理,否则程序就会发生错误,无法通过编译 运行时异常: 非受检异常 无需处理,也可以和编译异常一样处理 所有的RuntimeException类及其子类,被称为运行时异常,其他的都是编译时异常

1.7 throws 处理

虽然能通过try...catch...对异常进行处理,但不是所有情况我们都有权限进行异常的处理 针对这种情况,Java提供了throws的处理方案 格式: throws 异常类名; 直接跟在方法的括号后面 编译时异常必须要进行处理 try...catch...或throws 采用throws方案的话,谁调用谁来处理 运行时异常可以不进行处理 出现问题后需要修改代码。

1.8 自定义异常

格式:
public class 异常类名 extends Exception{ 无参构造 带参构造 }
范例:
public class myException extends Exception{ public myException(){} public myException(){ super(message); } }

1.9 throws 和 throw 的区别

throws throw 用在方法声明后面,后跟异常类名 用在方法体内,后跟异常对象名 表示抛出异常,又该方法的调用者来处理 表示抛出异常,由方法体内的语句处理 表示出现异常的可能,不一定会出现 执行throw就是抛出了一个异常
最新回复(0)