自定义异常
也就是自己写的一个异常类,通常根据自己的业务需求来定义异常,也方便自己的项目中异常的打印和获取。
基础异常类
package com.cloud.exception; /** * 构建一个基础的异常类 */ public class DefineException extends RuntimeException{ //VersionUID private static final long serialVersionUID = 3042686055658047285L; //错误位置 protected String positionName; //错误标签 protected String errorLabel; //错误信息 protected String message = ""; public String getMessage(){ return message; } //封装属性 public void setNameAndMessage(String errorLabel,String message){ this.errorLabel = errorLabel; this.message = message; } public void setPositionName(String positionName) { this.positionName = positionName; }
public void setErrorLabel(String errorLabel) { this.errorLabel = errorLabel; }
public void setMessage(String message) { this.message = message; } public String getErrorLabel(){ return this.errorLabel; } public String getPositionName(){ return this.positionName; } //参照Throwable源码的几个构造方法 public DefineException(){ super(); } public DefineException(Throwable throwable){ super(throwable); } public DefineException(String errorLabel){ super(errorLabel); this.errorLabel = errorLabel; this.message = errorLabel; } public DefineException(String positionName,String errorLabel){ super(errorLabel); this.errorLabel = errorLabel; this.positionName = positionName; this.message = errorLabel; } public DefineException(String positionName,Throwable throwable){ super(throwable); this.positionName = positionName; } public DefineException(String positionName,String errorName,Throwable throwable){ super(throwable); this.errorLabel = errorName; this.positionName = positionName; this.message = errorName; } } |
扩展一个使用的异常类
package com.cloud.exception; /** * 扩展一个自己使用的异常类 */ public class MyException extends DefineException{ private static final long serialVersionUID = -3042686055658047285L; public MyException(){} public MyException(Throwable throwable){ super(throwable); } public MyException(String positionName,String errorLabel){ super(positionName, errorLabel); } public MyException(String errorLabel){ super(errorLabel); } public MyException(String positionName,Throwable throwable){ super(positionName, throwable); } public MyException(String positionName,String errorLabel,Throwable throwable){ super(positionName, errorLabel, throwable); } } |
测试MyException
package com.cloud.exception; /** * 测试自己定义的异常 */ public class TestException { public static void main(String[] args) { try { String name = new TestException().getName("cloud"); System.out.println(name); } catch (MyException e) { String pisotionName = e.getPositionName(); String errorLabel = e.getErrorLabel(); String errorMessage = e.getMessage(); System.out.println("pisotionName:"+pisotionName); System.out.println("errorLabel:"+errorLabel); System.out.println("errorMessage:"+errorMessage); } catch (Exception e) { System.out.println("出现异常..."); e.printStackTrace(); } } public String getName(String name){ MyException me = new MyException(); if(name.equals("cloud")){ me.setPositionName(this.getClass().getName()); me.setMessage("姓名无法通过"); me.setErrorLabel("参数错误"); throw me; }else{ return "Spring"; } } } |
测试结果
pisotionName:com.cloud.exception.TestException errorLabel:参数错误 errorMessage:姓名无法通过 |