Here’s a ruby noob question for ya:
I have a class I’ve made that the initalize method searches for a file
needed for the class to function.
Right now, I’ve made a class variable, “found”, that is set to true or
false if the initialize method could or could not find the file.
For example:
foo = Class.new
if foo.found == true
continue program
else
give error message
exit
Is there a way for “Class.new” to signal failure? I originally had the
class’s initialize method return true or false but this doesn’t seem to
be reflected in a “foo = Class.new” when trying it in irb.
Using the class variable “found” works but shouldn’t Class.new signal
failure?
On 11/13/06, Rodney B. [email protected] wrote:
Is there a way for “Class.new” to signal failure? I originally had the
class’s initialize method return true or false but this doesn’t seem to
be reflected in a “foo = Class.new” when trying it in irb.
Using the class variable “found” works but shouldn’t Class.new signal
failure?
How about raising an exception?
http://www.rubycentral.com/book/tut_exceptions.html
-Harold
Rodney B. wrote:
foo = Class.new
Using the class variable “found” works but shouldn’t Class.new signal
failure?
Generally when the initialize method fails it should raise an exception.
Hi, Rodney,
I wrote a small program for you, maybe it can meet your
requirements.
I think you intended that your program flow could be controled directly
by
“foo = Class.new” instead of other dedicated variables like “@found”
for
this purpose.
//////////////////////program commences///////////////////////
class ClassAndFileTest
def initialize
puts “shiwei zhang”;
#searching the file…
#if found the file
;
#if did not find the file
raise “file not found!”;
end
end
begin
foo=ClassAndFileTest.new;
rescue
#give error message
puts $!;
exit;
end
# continue program
puts “file found!”;
…
/////////////////////////program concludes////////////////////////////
Rgds,
Shiwei