0

我有一个代码片段在我的代码块下printStackTrace()使用时抛出错误。catch以下是代码片段。

         try
     {
            # Debug Code added on 19 Feb 2016
            logger.log(Level.INFO, "baseDNs[i] = "+baseDNs[i]);
            logger.log(Level.INFO, "search ="+search);
            logger.log(Level.INFO, "attributes = "+attributes);

        it = basicCmAgent.find_managed_objects(baseDNs[i], search, attributes);
     }
     catch(Exception e)
     {
        # Debug Code added on 19 Feb 2016
        logger.log(Level.SEVERE, "Caught Error : "+e.printStackTrace());

        logger.log(Level.WARNING, "Could not find managed objects with base DN " + baseDNs[i]);
        return false;
     }

以下是错误:

       asses/xml-apis.jar:../3pp_libraries/cxa_classes/irp3gppR99_330_j140.jar -d lib com/ericsson/nms/temip/importer/BasicCmConnection.java
    com/ericsson/nms/temip/importer/BasicCmConnection.java:177: 'void' type not allowed here
            logger.log(Level.SEVERE, "Caught Error : " +e.printStackTrace());
                                     ^
Note: ./com/ericsson/nms/temip/importer/BasicCmConverter.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1 error
*** Error exit code 1

Stop.
*** Error exit code 1

Stop.

我怎样才能解决这个问题?

4

3 回答 3

2

printStackTrace()具有 void 返回类型,因此您不能将其连接到 aString或将其用作另一个方法的参数。

您可能想getStackTrace()改用。

logger.log(Level.SEVERE, "Caught Error : "+e.getStackTrace());
于 2016-02-25T10:22:34.397 回答
1

e.printStackTrace()不返回 String 它返回 void 并打印堆栈跟踪。您正在尝试做的事情String + void = String是行不通的。

于 2016-02-25T10:23:20.147 回答
0

问题出在这一行

 logger.log(Level.SEVERE, "Caught Error : "+e.printStackTrace());

e.printStackTrace 的返回类型为 void。您不能连接字符串 +void。

更好地使用 e.getStactTrace();

于 2016-02-25T10:27:05.740 回答