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()Stringには void の戻り値の型があるため、これを に連結したり、別のメソッドの引数として使用したりすることはできません。

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 です。String +void を連結することはできません。

e.getStactTrace(); を使用することをお勧めします。

于 2016-02-25T10:27:05.740 に答える