2

Web ベースの Groovy コード エディターを実装しており、コードの構文エラーをチェックする必要があります。以下の Java 実装は正常に動作しますが、結果のメッセージには望ましくない要素 (太字) が含まれています。警告とエラーを個別にリストする方法を探しています。私はこのmaven依存関係を使用しています:groovy-all 2.1.1

try {
    new GroovyShell().parse(groovyCode);            
} catch(CompilationFailedException cfe) {
    System.out.println(cfe.getMessage());
}

出力:

startup failed:

Script1.groovy: 1: unexpected token: n @ line 1, column 19.

def factorial(n)  n == 1 ? 1 : n * factorial(n - 1) }
                         ^

1 error
4

1 に答える 1

3

エラーメッセージを解析してもあまり意味がありません。調べてみてください

CompilationFailedException.getUnit()
ProcessingUnit.getErrorCollector()
ErrorCollector.getWarnings() & getErrors() 

編集

わかりました、のように見えますunitは nullCompilationFailedExceptionです。MultipleCompilationErrorsException代わりにキャッチしてみてください:

try {
    new GroovyShell().parse(groovyCode);
} catch(MultipleCompilationErrorsException cfe) {
    ErrorCollector errorCollector = cfe.getErrorCollector();
    System.out.println("Errors: "+errorCollector.getErrorCount());
}

ところで、ソースを見てみると、コンパイル エラーに関する情報を出力するのに役立つメソッドErrorCollectorが見つかるかもしれません。write

于 2013-03-07T10:12:06.393 に答える