我需要捕获RunTimeException。
catch (RuntimeException ex) {
//here i can get message using ex.getMessage();
}
在这里,我可以使用 ex.getMessage()获取异常消息。但我不希望将此消息返回给客户。我必须更改此消息并返回。 但是没有用于更改消息的setter方法。 是否可以更改运行时异常消息?
谢谢!
答案 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");
}