抛出自定义异常的消息被打印为空

时间:2015-10-13 18:07:03

标签: java exception

即使我输入了自定义信息,但在打印信息时仍未打印。代码如下:

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

3 个答案:

答案 0 :(得分:2)

你还没有抛出自己的Exception;由于NullPointerExceptionpoNumber.equals(null),因此poNumber nullNullPointerException

您的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);

所以你下次会知道发生了什么异常。