即使我输入了自定义信息,但在打印信息时仍未打印。代码如下:
public void run() throws Exception {
try {
String poNumber=null;
if(poNumber.equals(null))
{
throw new Exception("Services Purchase Order not created.");
}
}
catch (Exception e) {
info("Custom Exception Message: "+e.getMessage());
}
}
输出:
自定义异常消息:null
答案 0 :(得分:2)
你还没有抛出自己的Exception
;由于NullPointerException
为poNumber.equals(null)
,因此poNumber
null
已NullPointerException
。
您的catch块抓住了Exception
,而不是null
,其消息为Exception
。
如果您真的想要自己==
,请更改条件以使用NullPointerException
,以避免使用if (poNumber == null)
。
InternalUse.InvoiceID
答案 1 :(得分:1)
public void run()抛出异常{
try{
String poNumber=null;
if(poNumber==null)
{
throw new Exception("Services Purchase Order not created.");
}
}
catch (Exception e) {
info("Custom Exception Message: "+e.getMessage());
}
这将为您提供所需的信息
答案 2 :(得分:1)
您正在捕捉错误的异常:
poNumber.equals(null)
将导致 NullPointerException (因为您无法在 null 上调用 equals )。 你必须像这样重写它:
if(null == poNumber)
{
throw new Exception("Services Purchase Order not created.");
}
根据您的日志记录框架,您还可以将info()调用调整为此类
info("Exception occured", e);
所以你下次会知道发生了什么异常。