Я пытаюсь вызвать в моем коде следующее:
public void checkParticleLightRestriction(Particle parent) throws LightException {
if ( parent == null ) {
throw new LightException("quantum-particle-restrict.23", this);
}
В одном проекте генерируется исключение, и эффект аналогичен вызову «return», в результате чего я возвращаюсь к точке, сразу же следующейгде этот метод был вызван.
Однако в другом проекте меня выбрасывают из текущего пакета и на точку, предшествующую точке, предшествующей этому методу.
Ему нравится, когда меня выгоняют из барабыть депортированным из страны.
Мой вариант - завернуть бросок в попытке / поймать, но мне интересно, почему эта разница в поведении между двумя проектами?
09 мая 2009 Я играл с вашими предложениями, но я до сих пор не решил это.Вызов для выброса пользовательского исключения просто не вызывается в этом конкретном проекте вне зависимости от того, расширяет ли класс Exception RuntimeException или просто Exception.
public class LightException extends Exception {
...etc
public LightException(String errorCode, Object object) {
super(errorCode == null ? null : errorStrings.getString(errorCode));
this.errorCode = errorCode;
this.invalidObject = object;
}
public LightException(String errorCode, Object object, Exception exception) {
this(errorCode, object);
add(exception);
}
...
}
Любые идеи приветствуются.