我必須創建一個程序,我必須在一行中詢問用戶的姓名。如果用戶只放置他們的第一個OR姓,它將通過該例外被拒絕。我在最後(如下)不斷收到錯誤。Ruby異常初始化錯誤
class MyNewException < Exception
attr_accessor :first, :last
def initialize (first, last)
@first = first
@last = last
end
end
print "Enter your first and last name:"
begin
first, last = gets.chomp.split
print "Hello," + first + " " + last + "!"
if last.size == 0
raise MyNewException, "Sorry, I didn't catch that! Try again:"
end
rescue MyNewException
puts "Sorry, I didn't catch that. Try again:"
retry
end
不斷收到一個錯誤:
testing.rb:15:in `+': no implicit conversion of nil into String (TypeError)
添加一個默認值'高清初始化(第一=零,最後=零) ' – Beginner
這裏有兩個錯誤:一個是缺少逗號('raise MyNewException,「對不起,我沒有完全理解它!再試一次:'')或者顯式構造一個異常('raise MyNewException.new(」Sorry,我不太明白,再試一次:「)');另一個是你的例外錯誤的構造函數。你的例外爲什麼有一個名字? :)異常通常只在其默認構造函數中有一條消息。如果你真的想用一個名字來定製一個異常,你可以用'raise MyNewException.new('John','Doe')'來提高它。 – Amadan
@NewbeeDev謝謝你的工作!另外,爲了重新詢問用戶全名,我是否在救援中創建了一個循環? –