RuntimeException
Java程序在运行的过程中产生异常,就会中断程序的正常执行,为了保证程序在出现异常时 依然能继续执行,就需要对异常进行处理。异常处理就是当程序运行发生不可预知的错误时, 程序能获得异常并进行处理。
Exception 类:指由程序和外部环境引起的错误,它是可以被捕获且可能恢复的异常情况, 它包括 RuntimeException 类异常与其他 Exception 类异常。
RuntimeException 类:即运行时异常,表示编程时所存在的隐患或错误在运行期间所产 生的异常,如数组越界异常、空指针异常、除 0 运算等。Java 编译器允许对这类异常不进行 处理,而在运行期间抛出一个异常信息,告知程序员纠正错误。
异常栗子
以BusinessException为业务异常,举个栗子:
public class BusinessException extends RuntimeException {
private String code;
public BusinessException() {
super();
}
public BusinessException(String message, String code) {
super(message);
this.code = code;
}
public BusinessException(String message) {
super(message);
}
public BusinessException(String message, Throwable cause) {
super(message, cause);
}
public BusinessException(String message, String code, Throwable cause) {
super(message, cause);
this.code = code;
}
public BusinessException(Throwable cause) {
super(cause);
}
public String getErrorCode() {
return this.code;
}
// 封装各种异常抛法, 继承了RuntimeException都可以被手动抛出
public static void throwWithNull(){
throw new BusinessException();
}
public static void throwWithMessage(String message){
throw new BusinessException(message);
}
// BusinessError在下面会讲到
public static void throwWithMsgAndCode(BusinessError error){
throw new BusinessException(error.message, error.code);
}
public static void throwWithMsgAndCode(String message, String code){
throw new BusinessException(message, code);
}
public static void throwBWithMsgAndCause(String message, Throwable cause){
throw new BusinessException(message, cause);
}
}
枚举类错误
枚举类型是Java 5中新增特性的一部分,它是一种特殊的数据类型,之所以特殊是因为它既是一种类(class)类型却又比类类型多了些特殊的约束,但是这些约束的存在也造就了枚举类型的简洁性、安全性以及便捷性。
在定义枚举类型时我们使用的关键字是enum,与class关键字类似,只不过前者是定义枚举类型,后者是定义类类型
枚举类型可以像类(class)类型一样,定义为一个单独的文件,当然也可以定义在其他类内部
public enum BusinessError {
// 括号第一位对应code,第二位对应message
SUCCESS("0", "success"),
SYSTEM_ERROR("1001", "system error"),
ILLEGAL_ARGUMENT("1002", "illegal parameter"),
CONVERT_ERROR("1010", "properties convert error"),
public String code;
public String message;
BusinessError(String code, String message){
this.code = code;
this.message = message;
}
}
枚举错误结合异常
在代码中直接调用
BusinessException.throwWithMsgAndCode(BusinessError.ILLEGAL_ARGUMENT);
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/13505.html