Вам нужно поймать поднятое исключение, а затем поднять тот тип, который вы хотите. Так как вы упомянули, что хотите поймать любой тип ошибки, вы должны будете использовать класс Exception
в качестве улова.
Тем не менее, я хотел бы отметить, что это, как правило, плохая практика, потому что вы обычно хотите отлавливать только определенные ошибки, которые вы ожидаете иметь. Но если в итоге вы все равно выбросите ошибку, я полагаю, это не страшно. Но также заставляет меня задаться вопросом, какова цель этого кода. В любом случае ..
поймать что-нибудь
try...except Exception as e
повысить предпочтительную ошибку
raise AssertionError()
получить сообщение
e.message
получить тип
type(e)
] Собираем все вместе:
try:
# some code that raises an error
g = 10 + '11'
except Exception as e:
raise AssertionError('{}: {}'.format(type(e), e.message))
Вывод будет:
<type 'exceptions.TypeError'>: unsupported operand type(s) for +: 'int' and 'str'
Это можно очистить, чтобы избавиться от уродливого вывода type(e)
, но В общем случае, именно так вы бы включили тип ошибки и соответствующее сообщение.
Ruby Обувь (почему) предназначается, чтобы быть действительно простая платформа GUI. Я не знаю, насколько полнофункциональный это, все же.
Некоторые хорошие примеры кода могут быть найдены в эти учебные руководства .
кроме того, я думаю полномочия обуви взлом hackety , среда обучения программирования принуждения для молодежи.
Мерцание является интересной опцией для пользователей JRuby, которая обеспечивает очень интерфейс выхода Ruby к инструментарию SWT. (SWT является платформой пользовательского интерфейса позади Eclipse, который обеспечивает высокую производительность и знакомые метафоры UI путем использования собственных виджетов на различных платформах, которые это поддерживает: Windows, OS X, Linux, и т.д.) SWT всегда обращался ко мне как к Java-разработчику, но кодирование его было болезненным в экстремальном значении. Мерцание делает процесс намного более простым путем подчеркивания конвенции по конфигурации, и путем оценки Сухости и все другие нормальное совершенство Ruby.
Другая аккуратная опция SproutCore, основанный на JavaScript инструментарий GUI с привязкой Ruby, разработанной Apple. По крайней мере, демонстрации для него выглядят большими, и otherinbox создал довольно гладкий взгляд приложение сверху его. Лично, я провел довольно много часов, пытаясь получить его работающий на двух системах - одном Windows и одном Linux - и не успешно выполнился или на одном - я продолжаю сталкиваться с проблемами зависимости с Merb или другими частями стека SproutCore. Но это интригует достаточно, что я возвращусь после нескольких недель и попробую еще раз, надеясь, что вопросы решены в то время.
Центр внимания я действительно наслаждаюсь театральной метафорой.
Я недавно начал использовать Qt в качестве платформы GUI для приложения Ruby. Существует привязка, названная QtRuby. Для учебного руководства по быстрому запуску (покрывает только окна) см. этот сообщение
Вот хороший ресурс для Вас:
http://en.wikibooks.org/wiki/Ruby_Programming/GUI_Toolkit_Modules
имеет ссылки, сравнивающие в основном всех их.
Существует привязка Ruby для QT и GTK, таким образом, Вы не можете пойти не так, как надо с теми (они являются портативными также).
Прагматически настроенные Программисты опубликовали мини-книгу по Ruby с QT и полную книгу по FXRuby, таким образом, я думаю другой хороший выбор последнего.
Обувь, хотя легкий для изучения и милый, является довольно ситуационной и не предоставляет столько же возможностей для средств управления, сколько любой из других делает, поэтому если Вы хотите создать что-нибудь вне простого UI (для не ненависти Обуви, но это еще не является достаточно сформировавшимся), я рекомендовал бы Вам использовать один из более сформировавшихся и протестированных инструментариев.
Tk доступен для Ruby. Некоторые хорошие примеры (в Ruby, Perl и Tcl) могут быть найдены в http://www.tkdocs.com/
Попробуйте обувь . К сожалению, у меня не было шанса работать с ним все же, но у меня есть предстоящий проект, где я планирую использовать его. Это является межплатформенным. Также API смотрит очень Rubyish, таким образом, я дал бы ему попытку.
Wxruby является большой платформой, простой и чистой. Попробуйте его или используйте поляну с рубином (simpliest опция)
Используя ironRuby, межболее дерзкий, у Вас есть вся платформа .NET, подразумевая, что можно кодировать Winforms и WPF (я только попробовал Winforms). Это является потенциально кросс-платформенным, так как моно платформа существует
Если Вам интересно, , RubyLearning предлагает курс о FXRuby и Обуви. На самом деле курс Обуви проводится в настоящее время.
, Вероятно, самой легкой является Обувь. Как учитель в RubyLearning, я надеюсь, что у нас будут лучшие курсы для учеников.
Некоторые люди застряли в установке FXRuby. Но Обувь имеет установщик для любых платформ (Windows, Mac и Linux).
Существует обсуждение здесь , который мог бы быть полезным.
От моего собственного (ограниченного) воздействия, я сказал бы, что обувь была самой забавной и вероятно "самой легкой" войти. Предупредите, однако, что выяснение, что было неправильным, когда что-то повреждается, может быть хитрым (по крайней мере, это было для меня).
Для реального приложения, которое я планировал развернуть на реальных пользователях, я думаю, что пошел бы с wxruby.
У меня был некоторый очень хороший опыт с QT, таким образом, я определенно рекомендовал бы это.
необходимо быть изделием модели лицензирования все же. При разработке приложения с открытым исходным кодом можно использовать лицензионную версию с открытым исходным кодом бесплатно. При разработке коммерческого применения необходимо будет заплатить лицензионные сборы. И Вы не можете разработать в открытом исходном коде один и затем переключить лицензию на рекламу, прежде чем Вы начнете продавать.
P.S. У меня просто был беглый взгляд на обувь. Мне действительно нравятся декларативные определения элементов UI, таким образом, это определенно стоит исследовать...
Если бы Вы ищете межплатформенный GUI, то я настоятельно рекомендовал бы движение с JRuby и Swing.
кроме того, смотрите на библиотека monkeybars , которая является библиотекой Ruby для создания приложений MVC с помощью JRuby и Swing, где можно также использовать превосходный IDE Netbeans для визуального создания GUI.
wxWidgets стоит проверить. Это хорошо поддерживается на Ruby через wxRuby. Для приложения в качестве примера взгляните на wxRIDE. Посмотрите его по сравнению с другими инструментариями . Вы могли бы также хотеть проверить Наковальня , который является своего рода платформой выхода направляющих для работы с wx. Это выглядит умирающим теперь, все же.
Если вы разрабатываете для Mac, то MacRuby имеет лучшую библиотеку, руки вниз. Помимо молниеносной скорости, она имеет очень красивый GUI-интерфейс под названием hotcocoa. Кроме того, библиотека разработана компанией Apple, использует в качестве базы классы Core Foundation, и работает поверх среды исполнения Objective-C, используя LLVM. В двух словах, она работает очень быстро
.