[wxruby-users] Raising exceptions and "wrong number of arguments" problem

Alex Fenton
Sat, 12 Jul 2008 17:16:58 -0000

Bob Bobrov wrote:
> 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.
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