Я не могу создать экземпляр SQLServerException, потому что все ctors являются внутренними. Получение ошибки ниже при использовании SQLException
org.mockito.exceptions.base.MockitoException: проверенное исключение недействительно для этого метода!
Подпись метода (в SQLServerPreparedStatement): public boolean execute() throws SQLServerException, SQLTimeoutException
и... public final class SQLServerException extends SQLException
Насмехаться:
val fakeCmd : SQLServerPreparedStatement = mock()
...
whenever(fakeCmd.execute()).thenThrow(SQLException()) // this line fails
Что я делаю неправильно? Разве я не могу выдать базовое/суперисключение?
Предлагаемый вопрос: Предлагаемый вопрос сильно отличается от того, что я задаю, оператор в другом вопросе пытается выбросить SomeException
, который не выброшен ни List.get
, ни в дереве наследования.
Если вы видите подпись метода (в SQLServerPreparedStatement) выше, метод выдает SQLServerException
=> public final class SQLServerException extends SQLException
Но это не нравится whenever(fakeCmd.execute()).thenThrow(SQLException())
Кроме того, принятый ответ, как указано, состоит в том, чтобы бросить RuntimeException
, потому что IndexOutOfBoundsException extends RuntimeException
В данном случае так и SQLServerException extends SQLException