1.先update,再select查询,如果号源数量小于0,就抛异常
- 1.自定义异常类,继承RuntimeException
@Data
@ApiModel(value = "自定义全局异常类")
public class YyghException extends RuntimeException {
@ApiModelProperty(value = "异常状态码")
private Integer code;
* 通过状态码和错误消息创建异常对象
* @param message
* @param code
*
public YyghException(String message, Integer code) {
super(message);
this.code = code;
}
public YyghException(ResultCodeEnum resultCodeEnum) {
super(resultCodeEnum.getMessage());
this.code = resultCodeEnum.getCode();
}
@Override
public String toString() {
return "GuliException{" +
"code=" + code +
", message=" + this.getMessage() +
'}';
}
}
java异常处理面试题归纳
1.Error和Exception有什么区别?
Error:是系统级的错误,是java运行环境内部错误,不能指望程序来进行处理,它是java虚拟机抛出的;
Exception:表示程序需要捕捉处理的异常.
2.运行时异常和一般异常有什么不同?
1.一般异常:CheckedException,主要是指IO异常、SQL异常,对于这种异常,JVM要求我们必须catch处理。
public interface CheckedException {
}
2.运行时异常:RuntimeException,一般不处理,出现异常就由虚拟机接管。运行时异常一般可以在程序时避免,比如:
- NullPointerException(可以对数据进行非空判断)
- ClassCastException(可以用instanceof对其进行判断)
- IndexOutOfBoundsException(这里可以避免数组越界)
public class RuntimeException extends Exception {
}
3.Java中的异常处理机制
try:执行一段程序,如果出现异常,系统会抛出(throws)
catch:紧跟在try后面,用来捕获异常
throw:用来明确的抛出一个异常
throws:用来标明一个成员函数可能抛出的各种异常
finally:确保一段代码无论发生什么异常都会被执行的一段代码
4.你平时在项目中是怎么对异常进行处理的?
1.尽量避免出现RuntimeException,必要时也对其进行try catch处理;
5.final、finally、finalize的区别
final用于声明变量、方法和类的,分别表示变量值不可变,方法不可覆盖,类不可以继承
finally是异常处理中的一个关键字,表示finally{}里面的代码一定要执行
finalize是Object类的一个方法,在垃圾回收的时候会调用被回收对象的此方法。