4
A
답변
12
Rails의 일부가 아닌 Rails의 일부이므로 예외 처리를 할 수 있습니다. 당신이 오류를 포착하여 원하는 목적지, 너무로 포장 :
begin
SomethingElse.doSomething(x, y)
rescue Exception
ErrorLogger.log(Time.now, "Something went wrong!")
end
주의 사항 당신해야 대신 "구조"항상 "구조 예외". "rescue"를 사용하는 것만으로 Exception의 하위 클래스 인 StandardError를 잡을 수 있습니다.이 의미는 무언가가 통과하기를 원하지 않는 것을 의미합니다. 당신의 코드에서 어디
raise ArgumentError, "Illegal arguments!"
을 그에게 모델이나 컨트롤러를 수 :
또한 평소와 같이, 당신은 수행하여에게 예외를 발생시킬 수 있습니다.
1
내가 실수하지 않는다면 루비 어디서나 오류 처리를 사용할 수 있습니다. 너 뭐하려고?
관련 문제
- 1. 모델에서 오류 메시지를받는 방법
- 2. 모델에서 디버깅하는 방법?
- 3. 레일 : 모델에서 체인 방법
- 4. 모델에서 ViewModel과 통신하는 방법
- 5. C++ 예외를 기록하는 방법
- 6. gsoap에서 예외를 잡는 방법?
- 7. 펄 예외를 사용하는 방법?
- 8. Blackberry에서이 예외를 수정하는 방법?
- 9. 예외를 올바르게 처리하는 방법
- 10. catch 예외를 종료하는 방법
- 11. Voicexml 예외를 사용하는 방법
- 12. 예외를 제거하는 방법, System.InvalidOperationException?
- 13. 스레드에서 예외를 잡는 방법?
- 14. 치명적인 예외를 해결하는 방법
- 15. statment 예외를 throw하는 방법?
- 16. devenv 예외를 catch하는 방법
- 17. 잡힌 예외를 찾아내는 방법
- 18. 예외를 처리하는 방법
- 19. RoR : 모델에서 * _path를 사용하는 방법?
- 20. 모델에서 데이터베이스 로직을 처리하는 방법
- 21. 모델에서 시간 변수에 액세스하는 방법
- 22. 릴리스 모드에서 예외를 기록하는 방법
- 23. 응용 프로그램에서 예외를 추적하는 방법
- 24. 블랙 베리에서이 예외를 수정하는 방법?
- 25. AspectJ에서 AfterThrowing시 예외를 삼키는 방법
- 26. ChallengeAuthenticator에 대한 예외를 만드는 방법
- 27. ASP.NET 보안 예외를 추적하는 방법
- 28. 파이썬에서 스레드간에 예외를 전달하는 방법
- 29. 변수에 예외를 저장하는 올바른 방법
- 30. ASP.NET에서 WCF 예외를 처리하는 방법
작은 수정 : 두 번째 코드 조각에 두 번'raise'가 있습니다. 좋은 대답. – Shadwell
구문 오류 또는 이중 인상이 아닙니다. http://web.njit.edu/all_topics/Prog_Lang_Docs/html/ruby/syntax.html#raise –
일반적으로 동의하지만 첫 번째 코드 블록에 동의하지 않습니다. "rescue Exception"은 프로세스를 죽이려는 신호조차도 구출하므로 직접 사용하지 마십시오. 분명히 코드의 일부분이 깨끗하게 제거되지 않도록하고 싶지 않다면, Ruby가 가지고있는 기본 동작을 고수해야합니다. 따라서 일반적으로 바닐라 "구조"를 사용하고 사용자 정의 오류 클래스를 StandardError에서 파생시키는 것이 좋습니다. – nertzy