Сообщение Re[2]: обработка ошибок от 08.04.2022 12:37
Изменено 08.04.2022 13:19 MadHuman
Re[2]: обработка ошибок
Здравствуйте, vaa, Вы писали:
vaa>еще можно без спец искл.
vaa>
точно! по моему лучший вариант. вместо исключения возвращать Result, аля ФП F# подход с Result<'ok, 'err> , я ведь даже его знал.. но не сразу вспомнил
и волки сыты и овцы целы!
vaa>еще можно без спец искл.
vaa>
vaa>(bool, string) ValidateArgOne(string arg)
vaa>{
vaa> .....
vaa> return (false, "Ошибка");
vaa>}
vaa>
точно! по моему лучший вариант. вместо исключения возвращать Result, аля ФП F# подход с Result<'ok, 'err> , я ведь даже его знал.. но не сразу вспомнил

и волки сыты и овцы целы!
type ErrorKind = InvalidArg of string * string
type Result = Ok | Error of ErrorKind
let getThing arg1 =
//bla bla
if not (some condition) then
Error("arg1", "arg1 invalid")
else
//do ok work
Ok
Re[2]: обработка ошибок
Здравствуйте, vaa, Вы писали:
vaa>еще можно без спец искл.
vaa>
точно! по моему лучший вариант. вместо исключения возвращать Result, аля ФП F# подход с Result<'ok, 'err> , я ведь даже его знал.. но не сразу вспомнил
и волки сыты и овцы целы!
и ещё немаловажный бонус — в сценриаях когда ошибка ожидаемое поведение (а это как раз для рест-апи), возврат кода ошибки по перфомансу более выигрышно чем исключение и его кэтч.
vaa>еще можно без спец искл.
vaa>
vaa>(bool, string) ValidateArgOne(string arg)
vaa>{
vaa> .....
vaa> return (false, "Ошибка");
vaa>}
vaa>
точно! по моему лучший вариант. вместо исключения возвращать Result, аля ФП F# подход с Result<'ok, 'err> , я ведь даже его знал.. но не сразу вспомнил

и волки сыты и овцы целы!
и ещё немаловажный бонус — в сценриаях когда ошибка ожидаемое поведение (а это как раз для рест-апи), возврат кода ошибки по перфомансу более выигрышно чем исключение и его кэтч.
type ErrorKind = InvalidArg of string * string
type Result = Ok | Error of ErrorKind
let getThing arg1 =
//bla bla
if not (some condition) then
Error("arg1", "arg1 invalid")
else
//do ok work
Ok