Как указали другие, это действительно зависит от предполагаемой функциональности методов, задействованных здесь. Если роль doSomething()
состоит в том, чтобы что-то проверять, возвращая код, который позволяет продолжить нормальное выполнение его вызывающих методов (хотя и по разным путям в зависимости от возвращаемого кода), то возвращение этого значения int может быть нормальным. В этом случае, однако, doB()
, вероятно, должен быть непротиворечивым и возвращать логическое значение или что-то, что doSomething()
может проверить вместо выдачи исключения, которое на самом деле больше ничего не сделает.
Если бы doB()
был открытым методом другого класса, который мог бы иметь другие применения вне doSomething()
(в отличие от закрытого метода в том же классе, как вы указали), и он выдает исключение, и вы хотите использовать это в doSomething()
(которая имеет ту же роль, указанную выше), тогда ваш пример будет в порядке.
Тот факт, что код, который вы возвращаете, когда doB()
генерирует исключение, называется ERROR
, однако, указывает на то, что это, вероятно, ошибка, которая помешает выполнению любой операции, частью которой является doSomething()
. В этом случае вам, вероятно, не следует перехватывать исключение, генерируемое doB()
, и просто разрешать его выбрасыванию в стек до тех пор, пока оно не достигнет точки, где оно может быть обработано, или пока оно не достигнет вашего общего обработчика ошибок, который может сообщить / зарегистрировать его или что угодно.