Apakah ada praktik terbaik untuk menentukan jenis kesalahan khusus di aplikasi Ruby library (gem) atau Ruby on Rails? Secara khusus:
- Di mana mereka berada secara struktural dalam proyek? File terpisah, diuraikan dengan definisi modul / kelas yang relevan, di tempat lain?
- Apakah ada konvensi yang menetapkan saat ke dan kapan untuk tidak membuat kesalahan tipe baru?
Perpustakaan yang berbeda memiliki cara yang berbeda dalam melakukan sesuatu, dan saya belum melihat adanya pola yang nyata. Beberapa perpustakaan selalu menggunakan jenis kesalahan khusus sementara yang lain tidak menggunakannya sama sekali; beberapa memiliki semua kesalahan memperluas StandardError sementara yang lain memiliki hierarki bersarang; beberapa hanya definisi kelas kosong, yang lain memiliki segala macam trik pintar.
Oh, dan hanya karena saya merasa ingin memanggil "tipe kesalahan" ini agak ambigu, yang saya maksud adalah ini:
class AuthenticationError < StandardError; end
class InvalidUsername < AuthenticationError; end
httparty
: github.com/jnunemaker/httparty/blob/…