Обработка арифметических исключений - PullRequest
4 голосов
/ 11 июля 2011

Я создал свое собственное исключение для обработки ситуаций, таких как арифметические исключения, и других ситуаций, связанных с математическими правилами.Но когда я вызываю, он никогда не идет к моему Исключению, например, при делении на ноль вместо этого идет арифметическое исключение

Ответы [ 3 ]

10 голосов
/ 11 июля 2011

Деление на ноль и другие «стандартные» арифметические ошибки обрабатываются средой выполнения или библиотекой классов, которые не знают о вашем пользовательском исключении. Вы можете использовать свои собственные исключения только в своем собственном коде, явно указав throw, когда это уместно.

Конечно, можно отловить любые арифметические исключения, сгенерированные библиотекой классов, и обернуть их в ваши собственные исключения:

try {
  ...
} catch (java.lang.ArithmeticException exc) {
  throw new MyException("An arithmetic error occurred", exc);
}
4 голосов
/ 11 июля 2011

Вы должны были бы перехватить стандартные исключения Java для этих случаев и заключить их в свое исключение.

try {
   int x = 10/0;
} catch (ArithmeticException ex) {
   throw new MyException("My additional text", ex);
}

Как правило, добавление новых исключений не является хорошей идеей, если только вы не добавите некоторые дополнительные сведения.

0 голосов
/ 11 июля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...