Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Ruby

ข้อยกเว้นที่กำหนดเองใน Ruby

ง่ายต่อการสร้างข้อยกเว้นของคุณเองใน Ruby เพียงทำตามขั้นตอนเหล่านี้:

1. สร้างคลาสใหม่

ข้อยกเว้นคือคลาส เช่นเดียวกับทุกอย่างใน Ruby! หากต้องการสร้างข้อยกเว้นประเภทใหม่ ให้สร้างคลาสที่สืบทอดมาจาก StandardError หรือคลาสย่อยตัวใดตัวหนึ่ง

class MyError < StandardError
end

raise MyError

ตามแบบแผน ข้อยกเว้นใหม่มีชื่อคลาสที่ลงท้ายด้วย "ข้อผิดพลาด" แนวทางปฏิบัติที่ดีในการใส่ข้อยกเว้นแบบกำหนดเองของคุณลงในโมดูล นั่นหมายความว่าคลาสข้อผิดพลาดสุดท้ายของคุณจะมีลักษณะดังนี้:ActiveRecord::RecordNotFound และ Net::HTTP::ConnectionError .

2. เพิ่มข้อความ

ทุกวัตถุข้อยกเว้นทับทิมมีแอตทริบิวต์ข้อความ เป็นข้อความที่ยาวกว่าซึ่งพิมพ์ถัดจากชื่อข้อยกเว้น

ข้อยกเว้นที่กำหนดเองใน Ruby ตัวอย่างแอตทริบิวต์ข้อความของข้อยกเว้น

คุณสามารถระบุข้อความเมื่อคุณแจ้งข้อยกเว้น เช่น:

raise MyError, "My message"

และคุณสามารถเพิ่มข้อความเริ่มต้นให้กับคลาสข้อผิดพลาดที่คุณกำหนดเองได้โดยการเพิ่มตัวสร้างของคุณเอง

class MyError < StandardError
  def initialize(msg="My default message")
    super
  end
end

3. เพิ่มแอตทริบิวต์ข้อมูลที่กำหนดเองให้กับข้อยกเว้นของคุณ

คุณสามารถเพิ่มข้อมูลที่กำหนดเองไปยังข้อยกเว้นของคุณได้ เช่นเดียวกับที่คุณทำในคลาสอื่นๆ มาเพิ่มโปรแกรมอ่านแอตทริบิวต์ในชั้นเรียนของเราและอัปเดตตัวสร้าง

class MyError < StandardError
  attr_reader :thing
  def initialize(msg="My default message", thing="apple")
    @thing = thing
    super(msg)
  end
end

begin
  raise MyError.new("my message", "my thing")
rescue => e
  puts e.thing # "my thing"
end

แค่นั้นแหละ! การสร้างข้อผิดพลาดหรือข้อยกเว้นแบบกำหนดเองใน Ruby นั้นไม่ใช่เรื่องยากจริงๆ มีสิ่งหนึ่งที่ควรทราบ สังเกตว่าเรามักจะสืบทอดจาก StandardError ในตัวอย่างได้อย่างไร นั่นเป็นความตั้งใจ ในขณะที่มีคลาส Exception ใน Ruby คุณไม่ควรสืบทอดโดยตรงจากคลาสนั้น สำหรับข้อมูลเพิ่มเติม โปรดดูบทความเกี่ยวกับความแตกต่างระหว่าง Exception และ StandardError