У меня есть часть кода. В этом есть вероятность получить много исключений. Я сомневаюсь, что для обработки всех этих исключений мне приходится писать блоки catch для каждого типа исключения. Это эффективный способ или нет. За исключением использования ключевого слова throw, если есть какие-либо другие решения, предложите мне сделать это. Любой ответ будет оценен.
Заранее спасибо
Это зависит от того, какие исключения вы пытаетесь поймать. Все, что может быть брошено, реализует Throwable, поэтому вы можете поймать все с помощью
} catch (Throwable t) {
включая ошибки времени выполнения и все. Как упоминает Амджад, вы можете немного уменьшить это с помощью
} catch (Exception e) {
который просто ловит Исключение и его подтипы.
Проблема с обоими из них в том, что они слишком много ловят; вы можете обойти это, но вы рискуете заразиться важной проблемой, а затем не обрабатываете ее.
Если у вас есть только несколько разных исключений, вам, вероятно, лучше всего провести гребень с исключением
} catch (Exception1 e) { // do something
} catch (Exception2 e) { // do something else
У вас есть еще один вариант, если это ваши собственные исключения: создать иерархию классов собственных исключений
class MyExceptions extends Exception { /* ... */ }
class MyExceptionSubtypeA extends MyException { /* ... */ }
class MyExceptionSubtypeASubsub1 extends MyExceptionSubtypeA { /* ... */ }
Теперь вы можете выбрать любое поддерево классов, например
} catch (MyExceptionSubtypeA sa) {
который будет захватывать как MyExceptionSubtypeA
, так и MyExceptionSubtypeASubsub1
.
Используйте общий вид исключения Exception
try{
//your code here
}
catch(Exception e){
//handle exception
}
Однако это не рекомендуется http://source.android.com/source/code-style.html#exceptionsAll