Làm cách nào để chỉ định cứu hộ toàn cầu trong trường hợp ngoại lệ và nếu bạn sử dụng Sinatra cho API hoặc ứng dụng, bạn xử lý đăng nhập như thế nào?Trường hợp ngoại lệ về cứu hộ và đăng nhập toàn cầu trong Sinatra
Trả lời
404s có thể được xử lý với sự giúp đỡ của các phương pháp not_found
như ví dụ:
not_found do
'Site does not exist.'
end
500s có thể được xử lý bằng cách gọi phương pháp lỗi với một khối, ví dụ:
error do
"Application error. Pls try later."
end
Các chi tiết của bạn có thể truy cập lỗi qua số sinatra.error
trong request.env
như sau:
error do
'An error occured: ' + request.env['sinatra.error'].message
end
Tôi gặp khó khăn khi làm việc này trong hộp trong môi trường dev của mình - để làm cho nó hoạt động, tôi phải đặt show_exceptions
thành false trong cấu hình sinatra của mình.
class BaseApp < Sinatra::Base
configure { set :show_exceptions, false }
error do |err|
raise "Error: #{err}"
end
end
Thiết lập này, khi thiết lập là true, cho phép các trang lỗi cho thấy vết lùi và thông tin môi trường khi một ngoại lệ unhanded xảy ra, nhưng tôi chỉ có thể lỗi tùy chỉnh lửa bằng cách tắt nó.
Đây là câu trả lời đúng. Nó không hoạt động nếu không có dòng cấu hình. – pmontrasio
Trên thực tế, cả hai ': show_exceptions' và': raise_errors' phải được tắt (tức là, được đặt thành false) để chặn khối chung (tức là, không có lớp ngoại lệ hoặc mã trạng thái) được thực thi và trả về. –
Lưu ý rằng 'err' trong ví dụ là thông điệp của ngoại lệ, cũng có thể thu được bằng' env ['sinatra.error']. –
- 1. Đăng nhập ngoại lệ toàn cầu từ các dịch vụ ASP.NET [ScriptService]
- 2. Ngoại lệ trong các trường hợp ngoại lệ trong C++
- 3. Khi nào cần đăng nhập ngoại lệ?
- 4. Python: trường hợp ngoại lệ trong tập
- 5. EXTJS 4 - Trình nghe ngoại lệ toàn cầu
- 6. Mã lỗi trong trường hợp ngoại lệ so với trường hợp ngoại lệ hierarhy
- 7. Trường hợp ngoại lệ trong Yesod
- 8. Tại sao chúng ta cần các ngoại lệ toàn cầu và ngoại lệ trong thanh chống?
- 9. after_filter cho trường hợp ngoại lệ
- 10. Trường hợp ngoại lệ trong Python
- 11. Đăng ký toàn cầu định dạng trường trong Wicket
- 12. Xử lý ngoại lệ ASP.NET/Đăng nhập
- 13. cứu hộ từ ActiveRecord :: RecordNotFound trong Rails
- 14. Elmah không đăng nhập ngoại lệ
- 15. Tôi có lạm dụng "cứu hộ" để kiểm tra không?
- 16. ASP.NET MVC - Trường hợp ném ngoại lệ?
- 17. Làm thế nào để đăng nhập ngoại lệ trong JavaScript
- 18. Trình xử lý ngoại lệ javascript toàn cầu (trong Chrome)
- 19. Bắt số dòng trong trường hợp ngoại lệ ruby
- 20. Xử lý ngoại lệ toàn cầu trong Java
- 21. Có thể có móc ngoại lệ toàn cầu không?
- 22. Có an toàn để lưu trữ một trường hợp ngoại lệ và tái sử dụng không?
- 23. Thông báo ngoại lệ nên được toàn cầu hóa
- 24. Trường hợp ngoại lệ của DataContext
- 25. django - bắt nhiều trường hợp ngoại lệ
- 26. Tiêu hủy temporaries chuỗi trong trường hợp ngoại lệ ném
- 27. Loại ngoại lệ nào để ném trong trường hợp này?
- 28. hộ chiếu: chuyển hướng khác nhau để đăng nhập và đăng ký tài khoản
- 29. Xử lý ngoại lệ toàn cầu để điều khiển winforms
- 30. Sử dụng Xử lý ngoại lệ toàn cầu trên android
làm cách nào để thực hiện truy xuất ngoại lệ nếu đó là 500, ý tôi là điều gì đã xảy ra? cảm ơn. – Jane
@Jane xem câu trả lời cập nhật của tôi – maprihoda