Re[9]: В Rust 1.0 исключений не будет
От: VladD2 Российская Империя www.nemerle.org
Дата: 06.11.14 21:15
Оценка: +1
Здравствуйте, Cyberax, Вы писали:

C>В Rust нельзя забыть проверить код возврата.


Да ладно?
let x = fooWhichReturnError();
x?.Bar();
return 42;


И еще ладно бы забыть случайно или намеренно! Но в жизни же бывают случаи, кода ты будешь вынужден "забыть" свои коды. Вот нужно тебе реализовать интерфейс не предусматривающий код возврата, но при его реализации ты вынужден вызвать функции с кодами возврата. Что делать? Только "забыть".

Или интерфейс предусматривает один код, а функции возвращают другие коды. Значит мы сидим и препаковываем. И это еще в лучшем случае, так как исходный код может не позволять сохранить данные из полученного.

Короче, тупиковый путь. И к чему он ведет отлично видно по COM-у. Там просто возвращают если что универсальный E_FAIL и понять реальную причину невозможно.

Далее отладка. Так я включаю перехват исключений и вижу место возникновения ошибки. С кодами возврата так не выйдет. Это же ординарный код.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.