diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-04-30 07:41:23 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-04-30 07:41:23 +0000 |
commit | 287810940070b1c7b0cc915e6728da2f0aaac5e2 (patch) | |
tree | fd7394d6274c72eb3a15a179c627143bf8fb707f /lib/tk.rb | |
parent | b6e85a5e29a9790ec33add32bb554b55e3ad4ba9 (diff) |
new exception model
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@199 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/tk.rb')
-rw-r--r-- | lib/tk.rb | 21 |
1 files changed, 14 insertions, 7 deletions
@@ -113,7 +113,6 @@ module TkComm end end def list(val) - p val tk_split_list(val).to_a end def window(val) @@ -274,7 +273,7 @@ module TkCore end def _get_eval_string(str) - return str if str == None + return nil if str == None if str.kind_of?(Hash) str = hash_kv(str).join(" ") elsif str == nil @@ -294,10 +293,20 @@ module TkCore def tk_call(*args) print args.join(" "), "\n" if $DEBUG args.filter {|x|_get_eval_string(x)} - args.delete!(None) - args.flatten! args.compact! - res = INTERP._invoke(*args) + args.flatten! + begin + res = INTERP._invoke(*args) + rescue NameError + err = $! + begin + args.unshift "unknown" + res = INTERP._invoke(*args) + rescue + raise unless /^invalid command/ =~ $! + raise err + end + end if INTERP._return_value() != 0 fail RuntimeError, res, error_at end @@ -819,8 +828,6 @@ class TkObject<TkKernel if (args.length == 1) configure id.id2name, args[0] else - p caller - p id.id2name $@ = error_at super end |