java异常处理封装,Java系统中异常封装处理

异常处理

自定义异常基础类

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);

}

}

异常处理原则

package com.cloud.Test;

import com.cloud.exception.MyException;

/**

* 异常处理原则:

* 1.如果不能处理异常,不要捕获该异常。

* 2.如果要捕获,应在离异常源近的地方捕获它。

* 3.不要捕获的异常,但是什么也不处理。

*/

public class Test4 {

public static void main(String[] args) {

MyExe mx = new MyExe();

try {

/*这里发生异常,则直接离开try代码进入catch*/

//int i = 1/0;

/*这个方法执行扔出的异常就不会被捕获*/

mx.getI();

}catch(MyException mp){

String info = mp.getMessage();

System.out.println("捕获自定义异常"+info);

} catch (Exception e) {

e.printStackTrace();

System.out.println("捕获Exception异常");

}

}

}

class MyExe{

public void getI(){

MyException me = new MyException();

try {

int te = 2/0;

} catch (MyException e) {

me.setMessage("除数不能为0!");

throw me;

}catch (Exception e) {

System.out.println("Exception异常");

e.printStackTrace();

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值