当为返回null的exception.getMessage()方法提出时,我在NullPointerException方法中有问题。
如何在不改变JRE的情况下覆盖基本Exception.getMessage()来控制它?
发布于 2014-01-15 09:18:21
试着:
public class MyException extends Exception {
public MyException(String message) {
super(message);
}
public MyException(Throwable throwable) {
super(throwable);
}
public MyException(String message, Throwable throwable) {
super(message, throwable);
}
}抛出MyException一个程序。
try {
} catch (NullPointerException e) {
throw new MyException("My exception message", e);
or
throw new MyException("My exception message");
or
throw new MyException(e);
}捕获MyException另一个程序。
try {
} catch (MyException e) {
System.out.println(e.getMessage());
}发布于 2014-01-15 09:18:52
当nullPointerException.getMessage()返回null时,现在有消息传递给它的构造函数。由于您可以创建自己的Exception (但我不明白为什么是),您也可以使用文本消息生成NullPointerException:
if (something == null) {
// here you may want to log another data
throw new NullPointerException("mandatory value 'something' is NULL");
}请注意,这两种方法都假定您可以更改源。如果NullPointerException是在标准类(F.E.)中生成的。在HashMap中,您需要研究,为什么该类的调试器和/或读取源会发生。
发布于 2014-01-15 09:33:33
如果设计抛出NullPointerException的方法,则可以在抛出子句中构造NullPointerException对象。
例如,您的方法名为nullPointer。
public void nullPointer() throws NullPointerException{
do something;
throw new NullPointerException("I am a new null pointer exception");
}如果代码本身意外地生成此类异常,则需要检查代码的逻辑以防止此类异常。
https://stackoverflow.com/questions/21132970
复制相似问题