Создание метода в Java, который будет связывать другие методы и вызывать fail (), если предыдущий метод в цепочке вызывает исключение? - PullRequest
0 голосов
/ 22 января 2020

Вот что я пытаюсь сделать sh. Я нахожусь на Java модульном тесте с использованием Mockito. Я хочу создать обобщенный c метод для моего проекта с именем orFailIfExceptionThrown(), который я могу связать с любым вызовом метода в тесте и просто вызвать его fail("An unexpected exception was thrown", e) внутри метода. Я не thaaaat заинтересован в том, должен ли я делать это, поскольку я вижу обе стороны, почему я должен или не должен делать это. Мне просто интересно, как это можно сделать, с чистой Java точки зрения обучения.

1 Ответ

0 голосов
/ 22 января 2020

Вот что вы не можете сделать, и предпочтительная альтернатива:

method().failOnExcept();     // BAD: as soon as method() terminates unexpectedly
                             // failOnExcept() cannot be called - instead, control flow
                             // shifts to a catch block (error handling) or the caller
                             // of the method (if error handling failed/re-throws)
failOnExcept(() -> method()) // GOOD: we attempt to try method(); if it fails,
                             // failOnExcept() will handle it somehow

Меня не интересует, следует ли мне это делать, так как я вижу обе стороны, почему Я должен или не должен этого делать. Мне просто интересно, как это можно сделать, с чистой Java точки зрения обучения.

Имея это в виду, я не собираюсь обсуждать достоинства альтернативы здесь - просто Знайте, что основная причина, по которой мы этого не делаем, заключается в том, что это невозможно сделать.

...