Groovy блок catch не перехватывает MultipleCompilationErrorsException - PullRequest
0 голосов
/ 18 сентября 2019

Я пытаюсь поймать исключение (MultipleCompilationErrorsException), но мне трудно это делать (на самом деле я пытаюсь перехватить все типы ошибок и исключений, если это имеет значение).Вот что я попробовал:

try {
    some erroneous crap here
    println("wtf! A")
} catch(Throwable all) {
    println("caught!")
}

Это работает.caught! отображается как вывод.


try {
    try some erroneous crap here
    println("wtf! A")
} catch(Throwable all) {
    println("caught!")
}

Этот код ошибки содержит:

org.codehaus.groovy.control.MultipleCompilationErrorsException: сбой запуска: /tmp/g.groovy: 2: ожидание'{', найдено 'some' @ line 2, column 9. попробуйте немного дерьма здесь ^

1 error


Итак, теперь у меня есть имя исключения, япопробовал:

try {
    try some erroneous crap here
    println("wtf! A")
} catch(MultipleCompilationErrorsException e) {
    println("caught!")
}

Эта ошибка в точности, как указано выше:

org.codehaus.groovy.control.MultipleCompilationErrorsException: запуск не выполнен: /tmp/g.groovy: 2:ожидая '{', нашел 'some' @ line 2, column 9. попробуйте какую-нибудь хрень здесь ^

1 error

Может кто-нибудь сказать мне, что мне не хватает?Как поймать такую ​​ошибку / исключение?

1 Ответ

0 голосов
/ 19 сентября 2019

"Try Catch's" обычно используются для обработки исключений, которые могут появиться во время выполнения вашего кода.Например, вы можете попробовать запустить команду, которая требует импорта определенного плагина / библиотеки, но если у пользователя нет соответствующего плагина / библиотеки, то «catch» будет обрабатывать это исключение.

В вашем случае кажется, что вы пытаетесь обработать фактическую ошибку с помощью синтаксиса кода в вашем блоке try.Блок try не может работать вообще, если синтаксис неправильный (это будет ошибка компиляции).Мой лучший совет - сначала попытаться запустить то, что находится внутри вашего блока try, чтобы увидеть, будет ли оно генерировать исключение, а затем реализовать блок try catch.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...