Trapping errors, a simple example

J

John Maclean

Hey Chaps,

Here's a really simple menu with only 4 options. I'd like to be able do some simple error trapping... How's it done?

#!/usr/bin/ruby
#Wed Jan 4 06:17:22 GMT 2006
class TopMenu
def welcome
puts "Welcome to de-blah-de-blah-de-blah"
puts "~~~~~~~ ~~ ~~ ~~~~ ~~ ~~~~ ~~ ~~~~~"
end

def options
# we will use this data to create a class called Option
# each option will have a new menu
# and will be a child class of the main one
print "------------------------------------\nmenu - Which stage are you at?\n------------------------------------\n0:- Before site work\n1:- During site work\n2:- After site work\n3:- Other stuff\nq:- quit!\n"
end

# grab the input
def topchoice
print "enter your choice (0,1,2,q) : "
p = $stdin.gets # TODO:- check it's validity # TODO:- is the choice a number in the correct range? # TODO:- does he wanna quit?
print "you have chosen #{p}"
if p == "0"
print "you have chosen #{p}"
else
if p == "q"
print "you have chosen #{p}"
end
end
end




# create a new instance
top = TopMenu.new
top.welcome
top.options
top.topchoice
 
R

Robert Klemme

John said:
Hey Chaps,

Here's a really simple menu with only 4 options. I'd like to be able
do some simple error trapping... How's it done?

#!/usr/bin/ruby
#Wed Jan 4 06:17:22 GMT 2006
class TopMenu
def welcome
puts "Welcome to de-blah-de-blah-de-blah"
puts "~~~~~~~ ~~ ~~ ~~~~ ~~ ~~~~ ~~ ~~~~~"
end

def options
# we will use this data to create a class called Option
# each option will have a new menu
# and will be a child class of the main one
print "------------------------------------\nmenu - Which stage
are you at?\n------------------------------------\n0:- Before site
work\n1:- During site work\n2:- After site work\n3:- Other stuff\nq:-
quit!\n" end

# grab the input
def topchoice
print "enter your choice (0,1,2,q) : "
p = $stdin.gets # TODO:- check it's validity # TODO:- is the

p.chomp!

if /\a[012q]\Z/
# ok
case p
when 0
when 1
....
end
else
# error
end

HTH

robert
 
J

James Edward Gray II

John said:
Hey Chaps,

Here's a really simple menu with only 4 options. I'd like to be able
do some simple error trapping... How's it done?

#!/usr/bin/ruby
#Wed Jan 4 06:17:22 GMT 2006
class TopMenu
def welcome
puts "Welcome to de-blah-de-blah-de-blah"
puts "~~~~~~~ ~~ ~~ ~~~~ ~~ ~~~~ ~~ ~~~~~"
end

def options
# we will use this data to create a class called Option
# each option will have a new menu
# and will be a child class of the main one
print "------------------------------------\nmenu - Which stage
are you at?\n------------------------------------\n0:- Before site
work\n1:- During site work\n2:- After site work\n3:- Other stuff\nq:-
quit!\n" end

# grab the input
def topchoice
print "enter your choice (0,1,2,q) : "
p = $stdin.gets # TODO:- check it's validity # TODO:- is the

p.chomp!

if /\a[012q]\Z/
# ok
case p
when 0
when 1
....
end
else
# error
end

You might also want to take a look at HighLine[1], which can make
this kind of user interaction easier.

1: http://rubyforge.org/projects/highline/

James Edward Gray II
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top