Обработка ошибок 
Ахтунг
Этот раздел находится в неопределённом состоянии.
Смотрите по теме
- Composable Error Handling in OCaml Vladimir Keleshev
 - Advanced Error Handling in OCaml Vladimir Keleshev
 
Когда и что использовать
Используйте исключения для фатальных ошибок, либо ошибок, которые зачастую не произойдут. Монады для ожидаемых ошибок, ошибок бизнес-логики, вроде некорректных данных от пользователя и т.д..
Двойники
Иногда для удобства делают функции-двойники (с суффиксом _exn), которые выкидывают исключение в случае ошибки.