inicio mail me! sindicaci;ón

Lỗi Method Missing

Khi bạn “truyền thông điệp” đến một đối tượng, đối tượng đó sẽ thực thi phương thức đầu tiên mà nó tìm thấy có cùng tên trong quá trình truy xét phương thức. Nếu nó không tìm thấy phương thức nào như vậy, nó sẽ phát lỗi (ngoại lệ) NoMethodError – trừ khi bạn khai báo một phương thức có tên method_missing. Phương thức method_mising có tham số truyền vào là tên tham chiếu tới phương thức không tồn tại, và bất cứ tham số nào được truyền vào đó.

method_missing có thể coi là một cái lưới an toàn: nó cho phép bạn can thiệp vào những thông báo lỗi và xử lý chúng theo cách của mình. Xem ví dụ p012zmm.rb dưới đây (chúng ta sẽ nói đến cách tạo lớp sau).


class Dummy
  def method_missing(m, *args)
    puts "There's no method called #{m} here -- please try again."
  end
end
Dummy.new.anything

Kết quả cho ra là:

>ruby tmp.rb
There's no method called anything here -- please try again.
>Exit code: 0

Leave a Comment