言語設計のお勉強この広告は、90日以上更新していないブログに表示しています。mgemgithub.com設計上起こり得ないエラーを処理する例外クラスのmgemを公開した。これは、主に作業中のmgemにおいて使われることを想定している。分岐や変更の多い処理で一時的に例外をなげて、実装に考慮漏れがあることを明示するために用いる。テストを走らせたときなどに便利だと思う。endendこのクラスのオブジェクトを対応するC言語の構造体に変換したいとする。Data::Nameのような特定のデータを示すクラスとStringクラスのどちらも引数に取れたりする。*に変換したい場合それぞれで処理が異なる。オブジェクトの型チェックなどの判定処理を入れることになると思う。して、求められるC言語での実体をそれぞれの変数から取得して構築する。rubyの構造体の方に入る値はかなり柔軟に変更されることが予想できる。Fixnumも受け取れた方がいいだとかである。このような変更により処理に不整合が起こることが予想できる部分に書く例外としてImplementationErrorをmruby-implerrとして用意した。NotImplementedErrorは未実装な場合に投げる例外だと思うし、すべてをRuntimeErrorで処理するのは良くないと思ったためだる。ImplementationErrorはオプショナル引数を2つもち、数字と文字列を受け取れる。ImplementationError.new(__LINE__,__FILE__)のようにして、使うことを考えている。引数の順序はどちらを先にしても問題ない。C言語から例外を投げるImplementationErrorはC言語から投げられることが多いと思っている。ruby側ではちゃんとrubyとしてStandardErrorを継承したそれ用の例外をガンガン変更していける。処理を中止する用途で用いることを推奨する。(1)はてなブログをはじめよう!KeizoBookmanさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。