From: Tomo Date: 2007-01-14T17:23:17+09:00 Subject: [ruby-list:43118] Win32OLE のエラーを無視するには? はじめて、メーリングリストに参加させていただきます。 私は未熟者ですがよろしくお願いします。 現在Win32OLEでDAOを操作するスクリプトを作成しています。 OLEのエラーでスクリプトが止まってしまう箇所があります。 今回はこのエラーを無視して、処理を続行させたいのです。 たとえば、VBで言えば、「On Error Resume Next」のように 方法などありましたら、ご教授お願いします。 ○ruby 使用バージョン ruby 1.8.5 (2006-08-25) [i386-mswin32] ○スクリプト内容   mdbのテーブル定義(テーブル、フィールドのプロパティ )を出力する ○スクリプト require "win32ole" require "jcode" ap = WIN32OLE.new("DAO.DBEngine.36") db = ap.OpenDatabase(filename) # テーブル名 for td in db.TableDefs printf "\t%s\n", td.Name end # テーブル属性 for td in db.TableDefs printf "\n\t[%s]\n", td.Name for prop in td.Properties printf "\t\t%-20s%d\t\n" , prop.Name , prop.Type end end # フィールド、インデックス for td in db.TableDefs for f in td.Fields printf "\n\t[ %s - %s ]\n", td.Name, f.Name for fp in f.Properties printf "\t\t%-20s%d\t" , fp.Name , fp.Type printf "%s" , fp.Value ←ここでエラーがで ます end end end db.Close ○エラー内容 D:/KNL/RubyScript/テーブル一覧作成2.rb:38:in `method_missing': Value (WIN32OLERuntimeError) OLE error code:800A0C93 in DAO.Field 無効な処理です。 HRESULT error code:0x80020009 例外が発生しました。 from D:/KNL/RubyScript/ テーブル一覧作成2.rb:38 from D:/KNL/RubyScript/テーブル一覧作成2.rb:36:in `each' from D:/KNL/RubyScript/テーブル一覧作成2.rb:36 from D:/KNL/RubyScript/テーブル一覧作成2.rb:34:in `each' from D:/KNL/RubyScript/テーブル一覧作成2.rb:34 from D:/KNL/RubyScript/テーブル一覧作成2.rb:33:in `each' from D:/KNL/RubyScript/テーブル一覧作成2.rb:33 from D:/KNL/RubyScript/テーブル一覧作成2.rb:13:in `each' from D:/KNL/RubyScript/テーブル一覧作成2.rb:13