在Ruby中,多態性允許我們使用一個接口來表示多種不同的對象類型。然而,在處理異常情況時,我們需要確保代碼的健壯性和可維護性。以下是一些建議,可以幫助你在Ruby中使用多態性處理異常情況:
class CustomError < StandardError; end
def handle_error(error)
case error
when CustomError
puts "處理自定義錯誤"
when StandardError
puts "處理標準錯誤"
else
puts "處理未知錯誤"
end
end
module ErrorHandling
def handle_error(error)
puts "處理錯誤"
end
end
class MyClass
include ErrorHandling
def my_method
# ...
raise CustomError, "這是一個自定義錯誤"
end
end
my_instance = MyClass.new
my_instance.my_method
begin-rescue
語句:在Ruby中,你可以使用begin-rescue
語句來捕獲和處理異常。當你的代碼引發異常時,rescue
子句會捕獲該異常,并執行相應的處理代碼。class MyClass
def my_method
# ...
raise CustomError, "這是一個自定義錯誤"
end
end
my_instance = MyClass.new
begin
my_instance.my_method
rescue CustomError => e
puts "捕獲到自定義錯誤: #{e.message}"
rescue StandardError => e
puts "捕獲到標準錯誤: #{e.message}"
end
ensure
子句:ensure
子句是begin-rescue
語句的一部分,它在rescue
子句之后執行。無論是否發生異常,ensure
子句都會執行。這對于執行清理操作(如關閉文件、釋放資源等)非常有用。class MyClass
def my_method
# ...
raise CustomError, "這是一個自定義錯誤"
end
end
my_instance = MyClass.new
begin
my_instance.my_method
rescue CustomError => e
puts "捕獲到自定義錯誤: #{e.message}"
ensure
puts "執行清理操作"
end
通過遵循這些建議,你可以在Ruby中使用多態性處理異常情況,同時確保代碼的健壯性和可維護性。