safely do
# keep going if this code fails
end
ข้อยกเว้นได้รับการช่วยเหลือและรายงานไปยังบริการรายงานที่คุณชื่นชอบโดยอัตโนมัติ
ในการพัฒนาและการทดสอบสภาพแวดล้อมมีการยกข้อยกเว้นเพื่อให้คุณสามารถแก้ไขได้
อ่านเพิ่มเติม
เพิ่มบรรทัดนี้ใน Gemfile ของแอปพลิเคชันของคุณ:
gem "safely_block"
“ โอ้ไม่การวิเคราะห์ทำให้การค้นหาลดลง”
safely { track_search ( params ) }
“ คำแนะนำหยุดการอัปเดตเนื่องจากผู้ใช้ที่ไม่ดีคนหนึ่ง”
users . each do | user |
safely ( context : { user_id : user . id } ) { update_recommendations ( user ) }
end
ยังมีนามแฝงเป็น yolo
ผ่านบริบทพิเศษที่จะรายงานด้วยข้อยกเว้น
safely context : { user_id : 123 } do
# code
end
ระบุค่าเริ่มต้นเพื่อส่งคืนข้อยกเว้น
show_banner = safely ( default : true ) { show_banner_logic }
ยกข้อยกเว้นเฉพาะ
safely except : ActiveRecord :: RecordNotUnique do
# all other exceptions will be rescued
end
ผ่านอาร์เรย์สำหรับหลายคลาสข้อยกเว้น
ช่วยเหลือเฉพาะข้อยกเว้นเฉพาะ
safely only : ActiveRecord :: RecordNotUnique do
# all other exceptions will be raised
end
ข้อยกเว้นความเงียบ
safely silence : ActiveRecord :: RecordNotUnique do
# code
end
การรายงานคันเร่งด้วย:
safely throttle : { limit : 10 , period : 1 . minute } do
# reports only first 10 exceptions each minute
end
หมายเหตุ: ขีด จำกัด ของคันเร่งเป็นค่าประมาณและต่อกระบวนการ
รายงานข้อยกเว้นสำหรับบริการที่หลากหลายนอกกรอบ
หมายเหตุ: บริบทไม่ได้รับการสนับสนุนด้วย Google StackDriver และ Scout APM
ปรับแต่งการรายงานด้วย:
Safely . report_exception_method = -> ( e ) { Rollbar . error ( e ) }
ด้วย Rails คุณสามารถเพิ่มสิ่งนี้ในตัวเริ่มต้น
โดยค่าเริ่มต้นข้อความข้อยกเว้นจะถูกนำหน้าด้วย [safely]
สิ่งนี้ทำให้ง่ายต่อการสังเกตเห็นข้อยกเว้น ปิดสิ่งนี้ด้วย:
Safely . tag = false
เพื่อรายงานข้อยกเว้นด้วยตนเอง:
Safely . report_exception ( e )
เพื่อปกป้องความเป็นส่วนตัวของผู้ใช้ของคุณอย่าส่งข้อมูลส่วนบุคคลไปยังบริการยกเว้น ตัวกรองฟิลด์ฟอร์มที่ละเอียดอ่อนใช้ ID (ไม่ใช่ที่อยู่อีเมล) เพื่อระบุผู้ใช้และปกปิดที่อยู่ IP
ด้วย Rollbar คุณสามารถทำได้:
Rollbar . configure do | config |
config . person_id_method = "id" # default
config . scrub_fields |= [ :birthday ]
config . anonymize_user_ip = true
end
ในขณะที่ทำงานกับข้อยกเว้นให้มองหาข้อมูลส่วนบุคคลและแก้ไขได้ตามต้องการ
ดูการเปลี่ยนแปลง
ทุกคนได้รับการสนับสนุนเพื่อช่วยปรับปรุงโครงการนี้ นี่คือสองสามวิธีที่คุณสามารถช่วยได้:
เพื่อเริ่มต้นกับการพัฒนาและการทดสอบ:
git clone https://github.com/ankane/safely.git
cd safely
bundle install
bundle exec rake test