Java中的异常覆盖

时间:2019-06-28 07:24:21

标签: java exception

public class Student {

    checkAge (Student student) {
        try {
            if (student.getAge() > 18 ) {
                throw new CustomException("Student is older than 18 years.");
            }
        } catch (CustomException e) {
            handleException(e);
        }
    } 


public class HandleException {
    public static sendToErrorReport (CustomException customException) {
        //trying to do something like this, but the below code throws an error.
        customException.setMessage(customException.getMessage() +" ; Student -> " + customException.getStudent().getStudentName);
    }
}

我创建了一个自定义类来处理项目中发生的异常。我的要求是更改异常消息,并将一些数据附加到异常消息中,然后将其传递给我的自定义类。

因此,基本上,一旦设置了异常消息,我就需要对其进行编辑。

有什么办法可以做到这一点?

3 个答案:

答案 0 :(得分:0)

您可以覆盖getMessage类的Exception方法

class CustomException extends java.lang.Exception{

    @Override
    public String getMessage(){
        return super.getMessage() + "- My Message";
    }

}

答案 1 :(得分:0)

在代码中引发异常时

try{
//Some code here
}catch(Exception e){
 throw new CustomeException("Your text here")
}

在其他地方捕获CustomeException时,可以对其进行修改。

try{
//Some code here
}catch(CustomException e){
String message = e.getMessage();
//Do stuff with previous message
 throw new Custom2Exception("Your next text here")
}

答案 2 :(得分:0)

这里是完整的CustomException类,它扩展了RuntimeException类。您可以定义代码和消息。

public class CustomException extends RuntimeException {

    private String code;
    private String message;

    public CustomException() {
        super();
    }

    public CustomException(Exception e) {
        super(e);
    }

    public CustomException(String code, String message, Exception e) {
        super(message, e);
        this.code = code;
    }
}