История изменений
Исправление dimgel, (текущая версия) :
И увидит пользователь «неизвестная ошибка, попробуйте снова» и будет счастлив. Правильная обработка ошибок на исключениях тоже не появляется сама собой.
Где-то выше я давал ссылку на пост Legioner. К тому посту имею добавить:
-
Мне нужно ровно ДВА класса исключений: UserException(messageForUser) – и все остальные, которые логируются в файл с именем, равным хеш-коду содержимого файла, и юзеру показывается этот хеш-код ошибки. Поскольку «все остальные» в системе уже есть, мне хватает ОДНОГО класса исключений.
-
Мне нужен ровно ОДИН обработчик исключений – в корневой точке входа, чтобы показывал ошибку юзеру.
Может для меня это уже вопрос привычки, но правильная обработка ошибок на исключениях – тривиальна. Хотя скорее это вопрос не привычки, а правильной архитектуры.
Так же между анврапами и качественными ошибками есть промежуточный вариант: использовать какой-нибудь общий тип ошибок везде
Это несколько перекликается с вышенаписанным, но пойнт спора мне кажется был не в количестве разных типов ошибок. :) А в способе их передачи вверх по стеку: тебе нравится ручками, мне нравится шоб оно само. :)
Исходная версия dimgel, :
И увидит пользователь «неизвестная ошибка, попробуйте снова» и будет счастлив. Правильная обработка ошибок на исключениях тоже не появляется сама собой.
Где-то выше я давал ссылку на пост Legioner. К тому посту имею добавить:
-
Мне нужно ровно ДВА класса исключений: UserException(messageForUser) – и все остальные, которые логируются в файл с именем, равным хеш-коду содержимого файла, и юзеру показывается этот хеш-код ошибки. Поскольку «все остальные» в системе уже есть, мне хватает ОДНОГО класса исключений.
-
Мне нужен ровно ОДИН обработчик исключений – в корневой точке входа, который показывает ошибку юзеру ошибку.
Может для меня это уже вопрос привычки, но правильная обработка ошибок на исключениях – тривиальна. Хотя скорее это вопрос не привычки, а правильной архитектуры.
Так же между анврапами и качественными ошибками есть промежуточный вариант: использовать какой-нибудь общий тип ошибок везде
Это несколько перекликается с вышенаписанным, но пойнт спора мне кажется был не в количестве разных типов ошибок. :) А в способе их передачи вверх по стеку: тебе нравится ручками, мне нравится шоб оно само. :)