1. 抛出异常相关关键字
throw关键字throws关键字
1.1. throw 关键字
1.1.1. 执行语法
运用于方法内部, 抛出一个具体的异常对象. 然后终止方法, 类似
return.throw new SomeException("Reason of Exception");这个抛出的异常可以在
catch中截取并获取其中的信息.
1.1.2. 应用场景
一般来说, 当一个方法出现异常的时候, 此时用
return难以定义返回的内容,
因此可用throw返回一个异常对象, 在catch代码块中继续向上抛出异常.
所以必须先在try代码块中对该方法进行调用, 才能catch到异常.return是返回一个值,throw是返回一个错误, 返回给方法的调用者.
1.2. throws 关键字
运用于方法声明, 用于表示当前方法不处理异常, 而是提醒方法调用者来处理异常.
当抛出受检验异常
java.lang.Exception的时候, 如果该方法不能自行处理,
则需要将该异常通过throws向上抛出给调用者处理.//因为除数为0这种异常并非编码人员导致 //是使用该方法的人所导致, 因此不需要编码人员处理 public int divide(int num1, int num2) throws Exception{ if(num2 == 0){ throw new Exception("除数不能为零!"); } //TODO... }如果每个方法都放弃处理异常, 都直接通过
throws声明抛出,
最后异常会抛到main方法, 若main方法也不进行处理,
就会继续抛出给 JVM, JVM 底层的处理机制就是打印异常的跟踪栈信息.runtime异常就是默认这种处理方式.throws可以同时抛出多个异常, 只需要在声明的参数中添加即可.
2. 自定义异常类
2.1. 需求原因
JAVA 中存在不同的异常类, 分别表示某一种具体的异常情况,
但在开发过程中总会有异常情况是 SUN 没有定义的,
此时我们根据自己业务的异常情况来定义异常类.
2.2. 定义方式
在开发过程中根据业务的异常情况进行定义异常类,
有以下两种方式进行异常类定义:
自定义一个受检查的异常类:
自定义类, 并继承于java.lang.Exception自定义一个运行时期的异常类:
自定义类, 并继承于java.lang.RuntimeException
2.3. 定义语法
public class LogicException extends Exception{
//这个UID直接通过系统提示产生
private static final long serialVersionUID = 1L;
//可以通过快捷键通过父类去定义构造方法
//以下列举3个常用的构造方法
public LogicException(){
//无参构造器
super();
}
/**
* @param message 表示当前异常的原因/信息
* @param cause 当前异常的根本原因
*/
public LogicException(String message){
//带一个参数的构造器
super(message);
}
public LogicException(String message, Throwable cause){
//带两个参数的构造器
super(message, cause);
}
}
2.4. 使用方式
try{
//TODO...
}catch(Exception e){
throw new LogicException("INFO of Exception:" + e.getMessage(), e);
}
本文深入讲解Java中的异常处理机制,包括throw和throws关键字的使用场景及语法,并介绍如何定义自定义异常类以满足特定业务需求。

2万+

被折叠的 条评论
为什么被折叠?



