投掷之前更改异常导致消息?

时间:2013-11-26 06:51:45

标签: java exception-handling

我需要捕获RunTimeException。

catch (RuntimeException ex) {

//here i can get message using ex.getMessage();
}

在这里,我可以使用 ex.getMessage()获取异常消息。但我不希望将此消息返回给客户。我必须更改此消息并返回。 但是没有用于更改消息的setter方法。 是否可以更改运行时异常消息?

谢谢!

6 个答案:

答案 0 :(得分:3)

您可以创建自己的自定义异常,当运行时异常捕获时,您可以使用正确的消息抛出自定义异常。

public class MyException extends Exception {
    public MyException(String message) {
        super(message);
    }
}

答案 1 :(得分:3)

catch (RuntimeException ex)
{
    //here i can get message using ex.getMessage();
    throw new RuntimeException("bla bla");
}

如果您想保留有关第一个例外的原始位置的信息,请使用此:

catch (RuntimeException ex)
{
    //here i can get message using ex.getMessage();
    throw new RuntimeException("bla bla", ex);
}

答案 2 :(得分:1)

是的,有可能。通过自定义消息投掷新的RuntimeException

使用构造函数public RuntimeException(String message, Throwable cause)

  

使用指定的详细消息和原因构造一个新的运行时异常。

catch (RuntimeException ex) {

        throw new RuntimeException("Custome message", ex);

    }

答案 3 :(得分:1)

catch (RuntimeException ex)
{
    //here i can get message using ex.getMessage();
    throw new RuntimeException("Your message here.");
}

答案 4 :(得分:0)

catch (RuntimeException ex) {

     throw new SomeNewException(<Your message>);
}

catch (RuntimeException ex) {

     throw new RuntimeException(<Your message>);
}

public class SomeNewException extends Exception {
    public SomeNewException(String message) {
        super(message);
    }
…..
…..
…..
}


答案 5 :(得分:0)

喜欢这个

catch (RuntimeException ex) {    
        throw new RuntimeException("your message here");
}