LINUX.ORG.RU

История изменений

Исправление tailgunner, (текущая версия) :

Ну и толку от кодов возврата, если ни Rust, ни Go, которые специально отказались от исключений

Толк от кодов возврата в том, чтобы 1) у функции был ровно один канал возврата значений (проверяемый компилятором на общих основаниях) 2) обработка была единообразной (match вместо match и catch) 3) эффективности (возврат значений эффективнее запуска исключений).

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

вынуждены использовать паники? ;)))

Я не претендую на понимание того, как паника должна использоваться в современном Rust, но, ИМХО, это такой несмертельный assert - т.е. вещь для сигнализации о внутренних ошибках программы.

Исходная версия tailgunner, :

Ну и толку от кодов возврата, если ни Rust, ни Go, которые специально отказались от исключений

Толк от кодов возврата в том, чтобы 1) у функции был ровно один канал возврата значений (проверяемый компилятором на общих основаниях) 2) обработка была единообразной (match вместо match и catch) 3) эффективности (возврат значений эффективнее запуска исключений).

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

вынуждены использовать паники? ;)))

Я не претендую на понимание того, как паника должна использоваться в современном Rust, но, ИМХО, это такой несмертельный assert - т.е. вещь для отлавливания внутренних ошибок программы.