异常的定义
异常就是异于常态,和正常情况不一样,有错误出现。在Java中,阻止当前方法或作用域的情况,称之为异常。
异常的分类
Error:是程序中无法处理的错误,表示运行应用程序中出现了严重的错误,程序自身无法解决的严重问题。
Exception:程序本身可以捕获并且可以处理的异常。
异常的关键字
- try:存放可能发生异常的代码块
- catch:捕获并处理异常
- finally:存放无论如何都要执行的代码,除非jvm(java虚拟机)退出
- throw:抛出异常,自定义异常
- throws:声明异常,将方法可能发生的异常列举出来
抛出异常throw和声明异常throws
throw用在方法内,用来抛出一个异常对象,将这个异常对象传递到调用者处,并结束当前方法的执行。
throws用于方法声明之上,用于表示当前方法不处理异常,而是提醒方法的调用者来处理异常
使用格式:
public class Student {
private String sex;
public String getSex() {
return sex;
}
//修饰符 返回值类型 方法名(参数) throws 异常类名1,异常类名2...{}
public void setSex(String sex) throws Exception {
if (sex.equals("男")||sex.equals("女")) {
this.sex=sex;
} else {
throw new Exception("性别赋值不合理!");//throw new 异常类名(参数);
}
}
try-catch-finally
try{
//监视代码执行过程,一旦发现异常则直接跳转至catch,如果没有异常则直接跳转至finally
//异常处理机制中try块必须有,但也不能单独存在
}catch{
//可选执行的代码块,如果没有异常发生则不会执行,如果发生异常则进行处理或向上抛出
//可以有多个catch
//使用场景:一段代码可能发生多种不同类型的异常时
//摆放顺序:先子后父,将最可能发生的异常往前放
}finally{
//必选执行的代码块,不管是否有异常都会执行
}