Ruby Forum wxRuby > Raising exceptions and "wrong number of arguments" problem

Posted by Bob Bobrov (rexon22)
on 12.07.2008 19:05
Hi everyone - what is the proper way to display error messages when you
raise exceptions?

For example, the following code...

class MyWxRubyClass
  some code...
  evt_button(my_button) do
    begin
      some code...
      if wrong_condition
        raise "My Error Message"
      end
      some code...
    rescue Exception => msg
      puts msg
      Wx::MessageDialog.new(nil, msg, 'Error Popup',
Wx::OK|Wx::ICON_ERROR).show_modal
    end
  end
end

... produces "wrong # of arguments(1 for 0)" error message in both
console and message box.
How can I make it to display "My Error Message"?
"Wrong # of arguments(1 for 0)" happens only when I raise my own error
messages, ruby's native error messages are being displayd well.
Posted by Alex Fenton (Guest)
on 12.07.2008 19:19
(Received via mailing list)
Bob Bobrov wrote:
>       if wrong_condition
>
> ... produces "wrong # of arguments(1 for 0)" error message in both
> console and message box.
Use Kernel.raise, eg
Kernel.raise "My Error Message"

The reason this is needed is because if you're inside a class that
inherits from Wx::Window, a call to 'raise' unqualified is taken to mean
the instance method Window#raise (which takes no arguments)

alex
Posted by Bob Bobrov (rexon22)
on 12.07.2008 21:42
Alex Fenton wrote:
> The reason this is needed is because if you're inside a class that
> inherits from Wx::Window, a call to 'raise' unqualified is taken to mean
> the instance method Window#raise (which takes no arguments)
> 
> alex

Thank you very much, Alex :-)