استثناها
پنج شنبه 2 دی 1389 7:56 AM
یک استثنا (exception) توسط اعلان raise ایجاد میشود:
raise
یک پیام اختیاری میتواند به استثنا اضافه شود:
raise "This is a message"
شما همچنین میتوانید تعیین کنید که چه نوعی از استثنا را میخواهید ایجاد کنید:
raise ArgumentError, "Illegal arguments!"
استثناها توسط rescue کنترل میشوند. این عنوان میتواند استثناهایی را که از StandardError مشتق میشوند بگیرد:
begin # Do something rescue # Handle exception end
توجه داشته باشید که تلاش برای گرفتن تمام استثناها توسط یک rescue یک اشتباه معمول است و برای گرفتن تمام استثناها باید بصورت زیر عمل کرد:
begin # Do something rescue Exception # Handle exception end
یا یک استثنای بخصوص:
begin # ... rescue RuntimeError # handling end
و نهایتا امکان آن وجود دارد که تعیین کرد شی استثنا برای عنوان کنترل کننده مهیا شود:
begin # ... rescue RuntimeError => e # handling, possibly involving e end
همچنین آخرین استثنا در یک متغیر جهانی بصورت !$ ذخیره میشود.