2013-10-08 2 views
0

Я использую API, который бросает проверенное исключение в большинстве методов, даже конструктор бросает проверенное исключение.Как справиться с методами, бросающими проверенные исключения в java

При использовании методов API я хочу иметь дело с попыткой поймать все время. Предположим, что я использую некоторые методы 10 раз, тогда мне нужно окружить его в try catch block 10 раз.

Вещь

  • Я не хочу, чтобы распространить его на верхний слой.
  • Я хочу, чтобы избавиться от try catch block все время, я использую эти методы.

Что может быть правильным способом справиться с этой ситуацией?

Кто-то рассказал мне о вызываемом интерфейсе. Как мы можем использовать его в этом случае?

+0

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

+0

, но если есть 50 методов, тогда мне нужно написать 50 методов-оберток в этом случае. Есть ли лучший способ. Кто-то рассказал мне о вызываемом интерфейсе. Как мы можем использовать его в этом случае? – Prakhar

+0

Является ли это известным API, как JDBC? Возможно, уже существует оболочка (например, Spring JDBCTemplate). – artbristol

ответ

0

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

1

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

Но это вообще не имеет смысла. Разве вы не хотите, чтобы ваш собственный код действовал по-разному, когда есть исключение? Как правило, важная информация говорит вам, что того, что вы просили, не произойдет.

+0

Вы можете использовать: Thread.setDefaultUncaughtExceptionHandler ( новый DefaultExceptionHandler (...)); – Drake29a

+0

@ Даниэль, да я действительно хочу. Но множество блоков try-catch загромождают код. – Prakhar

+0

@ user1106018 - это не мешает компилятору сообщать вам либо перехватывать исключенное исключение, либо повторно объявлять его как созданное вашим собственным методом. –

0

Если вы используете эти методы в одном из своих методов, вы можете окружить тело вашего метода одним блоком try-catch, который только улавливает указанное исключенное исключение.

Надеется, что это помогает

0

Вы можете использовать:

Thread.setDefaultUncaughtExceptionHandler(new DefaultExceptionHandler(...)); 

Но это очень неразумное :)

+0

Нет, я не хочу этого делать. Я хочу поймать исключение, но не все время. – Prakhar

+0

Вы можете определить, какие исключения вы хотите поймать, допустим, вы поймаете только NullPointerException – Drake29a

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