레일 애플리케이션을 사용하고 있으며 일반적으로 서버 성능을 이해할 수 있도록 데이터베이스 공유 서버가 다운되었을 때 예외를 잡으려고합니다. 레일 데이터베이스 연결 예외를 캐치하는 방법
class ApplicationController < ActionController::Base
protect_from_forgery
before_filter :check_database
rescue_from Exception do |exception|
ExceptionNotifier::Notifier \
.exception_notification(request.env, exception) \
.deliver
raise exception
end
private
def check_database
Category.first
rescue Exception => exception
ExceptionNotifier::Notifier \
.exception_notification(request.env, exception) \
.deliver
raise exception
end
end
그러나, 구조 블록의 아무도 나를 위해 일한 :이를 위해, 내가
https://github.com/smartinez87/exception_notification에서 내와 ApplicationController에 exception_notification 보석을 설정, 나는 다음과 같은 코드가 있습니다. Rails에서 어떻게 이러한 예외를 잡을 수 있는지 조언 해 주실 수 있습니까? 감사합니다
작동하지 않는다는 것이 무엇을 의미합니까? 또한 구조를 위해 나는 당신이 '시작'을 필요로한다고 믿는다. '시작; Category.first; rescue ...'또한 구조하려고하는 예외의 유형을 알고있는 경우 로깅 후에 적절하게 다시 올리기 때문에 반드시 명시 적으로 지정하지만 명시 적으로 지정합니다. – engineersmnky
확실히 내 신청서와 관련하여 가장 구체적인 예외를 잡으려고 노력할 것입니다. 그러나 이것은 테스트 용이며 작동하지 않기 때문에 Exception을 모든 예외의 루트 클래스로 잡아야했습니다. 데이터베이스 서버를 종료하려고 할 때 코드 블록 중 아무 것도 오류와 관련하여 전자 메일 주소로 전자 메일을 보내지 않았기 때문에 작동하지 않는다고했습니다. 대신 액세스했을 때 오류 페이지가 표시되었습니다. – TrongBang