浙江建站,google推广 的效果,域名备案是什么意思?,服务专业制作网页1.异常
1.1 异常
1.1.1 概述
异常#xff1a;就是程序出现了不正常的情况。 Error#xff1a;严重问题#xff0c;不需要处理。
Exception#xff1a;称为异常类#xff0c;它表示程序本身可以处理的问题。
RuntimeException#xff1a;在编译器不检查#xff0c;出…1.异常
1.1 异常
1.1.1 概述
异常就是程序出现了不正常的情况。 Error严重问题不需要处理。
Exception称为异常类它表示程序本身可以处理的问题。
RuntimeException在编译器不检查出现问题后需要我们修改代码。
非RuntimeException编译器就必须处理否则程序不能通过编译更不能正常运行。
Throwable是所有异常类的超类。
1.1.2 JVM的默认处理方案
如果程序出现了问题我们没有做任何处理最终JVM会做默认的处理
把异常的名称、异常原因以及异常出现的位置等信息输出在了控制台。
程序停止执行。
1.1.3 Throwable的成员方法
方法名说明public String getMessage()返回此throwable的详细消息字符串 原因public String toString()返回此可抛出的简短描述包括getMessage的详细消息字符串 原因名称public void printStackTrace()把异常的错误信息输出在控制台包括toString的描述 原因名称位置
1.1.4 编译时异常和运行时异常的区别
Java中的异常被分为两大类编译时异常和运行时异常也被称为受检异常和非受检异常。
所有的RuntimeException类及其子类被称为运行时异常其他的异常都是编译时异常。
区别
编译时异常必须显式处理否则程序就会发生错误无法通过编译。
运行时异常无需显式处理一般需要修改代码。
1.1.5 方法覆写中的抛出异常范围
覆写后的抛出异常范围不能更宽泛只能抛出与父类方法相同的异常或者父类抛出异常的子类或者不抛出异常。
1.2 try…catch 和 throws 的使用
1.2.1 try…catch
格式
try{可能出现异常的代码;
} catch(异常类名 变量名){异常的处理代码;
}在 try…catch 结构中可以写多个 catch 语句块但是处理的异常类型从上到下必须使从子类到父类或者没有继承关系。适用于 try 下面可能会出现多种异常且每种异常对应的处理方案不同的情况。
用一个 catch 语句块捕捉多个异常时可以在 catch 的参数列表里写多个异常类型用 | 隔开。如果类型中有继承关系直接写父类。
1.2.2 throws
throws 抛出异常并不处理异常。如果能够处理问题的话就用 try…catch 直接处理否则就用 throws 抛出问题作为提醒机制。对于别人抛给的异常要么处理要么继续往上抛。
1.2.3 try…catch 和 throws 的使用场景
一般在服务端即提供方法处使用 throws 抛出异常而在客户端即调用方法处使用 try…catch 处理异常。
1.2.4 自动关闭资源
从 JDK1.7 开始可以把打开某个资源的语句写道 try 的参数列表中这样当语句块执行完毕后会自动将打开的资源关闭。
*1.2.5 throws 和 throw 的区别
使用 throw 类似于 return 执行到 throw 某个对象的时候方法结束执行并返回异常对象。这样就可以获取异常对象并且进行操作比如显示异常信息。
throwsthrow用在方法声明后面跟的是异常类名用在方法体内跟的是异常对象名表示抛出异常由该方法的调用者来处理表示抛出异常对象表示出现异常的一种可能性并不一定会发生这些异常执行throw一定抛出了某种异常
1.3 finally
1.3.1 finally
finally 是必须执行的语句块必须和 try 或者 try…catch 搭配使用只有遇到 System.exit(0) 时才不执行。
1.3.2 try…catch 和 finally 中出现的 return
当 try 或者 catch 语句块中出现 return 时 return 后面的语句会执行但是不会立刻返回值。在 return 语句执行之后返回值之前要执行 finally 中的语句。如果 finally 中有 return 语句就直接在 finally 中执行 return try…catch 中的 return 后的代码虽然已经执行了但是不会再返回值。如果 finally 中没有 return 语句就去将刚才执行了但是还没有返回值的 return 语句进行返回。
比如
1.4 自定义异常类
创建一个类继承一个已有的异常类。一般需要提供无参构造以及有参构造用于把异常信息传递给父类。
如果自定义异常是运行时异常类继承 RuntimeException 否则一般继承 Exception 即可。
public class 异常类名 extends Exception {无参构造带参构造//需要调用父类带参构造
}*自定义异常可以用来传递消息当作提醒机制。 如果对您有帮助请点赞关注支持我谢谢❤ 如有错误或者不足之处敬请指正❤