我有一个代码段,在我的代码的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.
我该如何解决这个问题?
答案 0 :(得分:2)
printStackTrace()
具有void返回类型,因此您无法将其连接到String
或将其用作另一种方法的参数。
您可能希望改用getStackTrace()
。
logger.log(Level.SEVERE, "Caught Error : "+e.getStackTrace());
答案 1 :(得分:1)
e.printStackTrace()
不返回String,它返回void并打印堆栈跟踪。您正在尝试String + void = String
这不起作用。
答案 2 :(得分:0)
问题出在这一行
logger.log(Level.SEVERE, "Caught Error : "+e.printStackTrace());
e.printStackTrace的返回类型为void。你不能连接String + void。
更好地使用e.getStactTrace();