Как отловить ошибку - PullRequest
       4

Как отловить ошибку

4 голосов
/ 03 августа 2011

Я использовал функцию Float.of_string для преобразования ввода, полученного формулой.

Конечно, пользователь может быть плохим парнем и написать предложение вместо числа с плавающей точкой во вводе:)

Существует множество решений для проверки ввода строки ... Но, на мой взгляд, функция float.of_string, должна проверять, обязательно преобразовывать в число с плавающей точкой.И в качестве доказательства того, что строка не является плавающей точкой ... Сервер обнаружит ошибку, которая убивает сервер (или, как минимум, сеанс).

Тогда, я думаю, лучшим будет (выбор):

  • Вернуть опцию
  • Способ отловить ошибку перед тем, как завершить сеанс ...

Тогда истинный вопрос этого поста таков:Есть ли способ сделать что-то вроде блока try / catch для необработанного исключения OPA.И если да, как это работает, и возможно ли выдать ошибку в нашей собственной функции?

Спасибо за ваш ответ, Матье

1 Ответ

3 голосов
/ 03 августа 2011

Хорошо, сначала о Float.of_string.Это низкоуровневая функция, которая предполагает правильно сформированный ввод, поэтому ее не следует вызывать для чего-либо, поступающего от пользователя (или вообще от всего, что может дать сбой).Но вы не первый, кто спрашивает, так что, возможно, нам действительно следует изменить эту функцию, чтобы она возвращала тип опции.

Для таких сценариев (когда что-то может пойти не так) следует вместо этого использовать синтаксический анализ и Rule.float функция.Чтобы узнать больше о синтаксическом анализе в Opa, вы можете просмотреть недавнее сообщение в блоге , и я надеюсь, что завтра будет продолжение,

Теперь по поводу обработки исключений: мы были (планируете добавить его в Opa, но на сегодняшний день он еще не доступен.Так что ... наберитесь терпения:)

...