2016-10-27 12 views
-1

Я пытаюсь поймать исключение Java при обработке файлов в цикле for. Но хотя исключение java отображается во время работы цикла, уровень ошибок всегда равен 0.Catch Java Exception в пакетном файле с errorlevel

Есть ли другой способ поймать исключение Java или, может быть, мой код неверен?

for /f %%a in ('dir /b /s %input%') do (


CALL jhove -m PDF-hul -h xml -o %output%\%%~na.xml %%a 

if %ERRORLEVEL% EQU 0 (
echo errorlevel equals %Errorlevel%) 

if %ERRORLEVEL% GEQ 1 (
echo error) 

set /a loop3+=1 
) 

Исключение, как это:

Verarbeite GBV85882115X 
java.lang.ClassCastException: edu.harvard.hul.ois.jhove.module.pdf.PdfSimpleObject cannot be cast to edu.harvard.hul.ois.jhove.module.pdf.PdfDictionary 
     at edu.harvard.hul.ois.jhove.module.PdfModule.readDocCatalogDict(PdfModule.java:1344) 
     at edu.harvard.hul.ois.jhove.module.PdfModule.parse(PdfModule.java:521) 
     at edu.harvard.hul.ois.jhove.JhoveBase.processFile(JhoveBase.java:803) 
     at edu.harvard.hul.ois.jhove.JhoveBase.process(JhoveBase.java:588) 
     at edu.harvard.hul.ois.jhove.JhoveBase.dispatch(JhoveBase.java:455) 
     at Jhove.main(Jhove.java:292) 

errorlevel equals 0 
+0

Ваша программа Java должен выйти с ненулевой ошибкой, например 'System.exit (1); «Ты это делаешь? – SomeDude

+0

@svasa Невозможно отредактировать эту java-программу. –

+0

Вы можете обернуть API, который вы вызываете вокруг своей собственной программы-вызывающего, и когда возникает исключение, вы выходите из своей программы-получателя с ненулевым значением. – SomeDude

ответ

0

исключения ява напечатаны в ошибке stream.May что-то вроде этого будет печатать его (не проверено):

set "print=" 
for /f %%a in ('dir /b /s %input%') do (
    for /f "tokens=* delims=" %%A in ('jhove -m PDF-hul -h xml -o %output%\%%~na.xml %%a 2^>^&1') do (
     echo %%A | find "ClassCastException" >nul 2>&1 && (
     set print=1 
    ) 
     if defined print echo %%A  
) 
) 

 Смежные вопросы

  • Нет связанных вопросов^_^