Могу ли я когда -нибудь поймать java.lang.xception вместо ее конкретных подклассов?JAVA

Программисты JAVA общаются здесь
Anonymous
Могу ли я когда -нибудь поймать java.lang.xception вместо ее конкретных подклассов?

Сообщение Anonymous »

Могу ли я когда -нибудь поймать java.lang.exception вместо его подклассов?

Код: Выделить всё

public class Tree {
public static Tree newInstance() throws NoWaterException, NoSoilException, NoSunshineException {
...
return new Tree();
}
}
< /code>

Когда я хочу получить экземпляр дерева, я могу сделать это: < /p>

public Tree plantTree() throws TreePlantExcetpion {
try {
...
return Tree.newInstance();
} catch (NoWaterException e) {
throw new TreePlantExcetpion("Cannot plant a tree since no water", e);
} catch (NoSoilException e) {
throw new TreePlantExcetpion("Cannot plant a tree since no soil", e);
} catch (NoSunshineException e) {
throw new TreePlantExcetpion("Cannot plant a tree since no sunshine", e);
}
}
< /code>

Но я также могу сделать это альтернативно: < /p>

public Tree plantTree() throws TreePlantExcetpion {
try {
...
return Tree.newInstance();
} catch (Exception e) {
throw new TreePlantExcetpion("Cannot plant a tree", e);
}
}
Я предпочитаю второй реализации метода Planttree (), поскольку он короче и четче, и в этом методе мне не волнует конкретные подклассы исключения , что мне нужно сделать, это обернуть его в новый тройной Вся подробная информация не будет потеряна. И я уверен, что метод Tree.newinStance () не будет выбросить ни одного другого типа исключений (по крайней мере, на данный момент). Могу я сделать это таким образом? Они не находятся в той же иерархии наследования.>

Подробнее здесь: https://stackoverflow.com/questions/493 ... subclasses

Вернуться в «JAVA»