Что касается первого результата, причина, по которой вы получили 2 ошибки:
first
в своей консоли, я думаю, что вы пытались вызвать a.first
вместо User.rand_age
, но это мгновенный метод, а не метод класса, поэтому вы не можете вызвать его таким образом. Что касается второго результата, он немного отличается от первого результата. Вы использовали мгновенные методы (User.new.first
и User.new.rand_age
) вместо использования метода класса, так что да, ваш код работает.
Хотя это надеется быть для Itanium, по-видимому, реализация подобна для x86: обработка исключений ABI
Нет большого количества в настоящее время доступной документации, однако базовая система - то, что GCC переводит блоки попытки/выгоды в вызовы функции и затем ссылки в библиотеке с необходимой поддержкой во время выполнения (, документация о древовидных строительных нормах и правилах включает оператор "выдача исключения, непосредственно не представлен в GIMPLE, так как это реализовано путем вызывания функции").
, К сожалению, я не знаком с этими функциями и не могу сказать Вам, что посмотреть на (кроме источника для libgcc - который включает время выполнения обработки исключений).
существует" Обработка исключений для Новичков " доступный документ.