#flutter #dart
Вопрос:
Каков сложный способ обработки исключений в общедоступной библиотеке?
Должен ли я позволять функциям в моей библиотеке бросать, не поймав?
Должен ли я перехватить и распечатать исключение?
Ответ №1:
Вы должны перехватывать каждое возникающее исключение, иначе это может привести к сбою вашего приложения на некоторых устройствах. Если определенное исключение возникает снова и снова, то у вас также может быть конкретный ответ на это в коде. Не печатайте исключения. Если ваш код создает исключение, и это нормальное поведение, попробуйте отобразить определенный пользовательский интерфейс для исключений. Может быть, экран ошибки. Зависит от вашего конкретного случая использования.
Комментарии:
1. А как насчет конструкторов? Возвращаемого значения нет, и если вы поймаете исключение, то как вы передадите эту информацию пользователю?
2. Почему ваш конструктор выдает ошибку? Если ошибка возникает внутри тела конструктора, вы все равно можете попытаться поймать ее внутри него. Вы также можете поместить код, в котором вы вызываете конструктор, в блок try catch и обработать его там.
3. Если ваш конструктор принимает неверный параметр и ему нужно что-то создать с его помощью, но это не удается, пользователь должен знать эту информацию. Мне кажется, вы вообще не должны попадаться в конструкторе.
4. Затем выбросьте исключение из тела конструктора и поместите код, в котором вы создаете объект, в блок try catch