В одном из программных продуктов, которые я разрабатываю, я пытаюсь управлять механизмом исключения.java.lang.exception.getCause() получает null каждый раз
В какой-то программе я делаю что-то вроде;
IF(my condition not allowed){
throw new Exception("My condition not allowed", null)
}
кидаю нуль с параметром java.lang.Exception, чтобы понять, что это то, что не имеет отношения с programatical ошибки. (У меня нет возможности создать собственное собственное исключение, пожалуйста, подумайте об этом)
И где-то над программированием я поймаю свое исключение, как это;
}catch(Exception e){
if(null == e.getCause)
do.somethingThatIWantToCatch();
}else{
do.somethingProgramaticalError();
}
здесь проблема; мой код может бросить что-то еще, что я не знаю, как NullPointerException, ArrayIndexOutOfBoundsException и т. д.
На этом этапе я ожидаю, что e.getCause() НЕ должен быть пустым, если я получаю программную ошибку, однако я получаю NULL all время, и я выполняю свой do.somethingThatIWantToCatch(); состояние все время.
Как я могу справиться с этой ситуацией и выполнить my do.somethingProgramaticalError(); состояние ???
Заранее спасибо
Прочитайте документацию; 'getCause()' обычно будет null. Вам нужно создать свое собственное исключение. – SLaks
Это ужасное злоупотребление системой исключений. Если вы хотите поймать свое собственное исключение, * throw * ваше собственное исключение. Создайте производный класс исключений или несколько. – EJP
Спасибо, что сообщили мне, но я уже знаю, что это не правильный способ справиться с исключениями. Пока я работаю над строгой инфраструктурой в банке, они не позволяют мне создавать свое обычное исключение. Вот почему я ищу обходной путь. Мне нужно решение этого, а не знание того, правильно ли оно использовать или нет. Благодаря :) – BurakT