Если у вас есть обобщенное c приложение-исключение, например,
class ApplicationException extends Exception {
...
private int errorCode; // with getter and setter
}
, реальное значение ситуации исключения закодировано в ApplicationException.errorCode
, например, 4839238756
Это только что-то значит для разработчика, я думаю, и, возможно, относится к очень специфическому c состоянию ошибки, например, cannot create new resource
. Вы можете извлечь значение на более высокий уровень и использовать несколько классов исключений, например,
class ResourceException extends ApplicationException {
...
}
class NetworkException extends ApplicationException {
...
}
проблемы затем классифицируются на отдельные области функциональности в приложении и могут регистрироваться в различных файлах журнала проблем. Указанная причина c все еще может быть закодирована в errorCode
.
Это то, хотите ли вы обрабатывать исключения далее по цепочке, например, иметь отдельные файлы журнала для различных типов исключений, таких как ошибки базы данных, сетевые ошибки et c, вместо того, чтобы выяснить, к какому типу исключений относятся его errorCode
.
Разработчик, которому необходимо исправить сетевые исключения, может сосредоточиться на них, поскольку только те, которые зарегистрированы в issues.network.log
для пример, и каждый errorCode
будет сужать его дальше, но в контексте этого типа исключения.
Если вы входите в базу данных, вы можете запросить все NetworkException
с, а не диапазон errorCode
, например, все errorCode
между 234342
и 898987
, если вы разделяете errorCode
на функциональные области.