我们如何捕获或/和处理 ruby 中所有未处理的异常?
例如,这样做的动机可能是将某种异常记录到不同的文件或发送电子邮件给系统管理。
在 Java 中我们会做
Thread.setDefaultUncaughtExceptionHandler(UncaughtExceptionHandler ex);
在 Node.js 中
process.on('uncaughtException', function(error) {
/*code*/
});
在 PHP 中
register_shutdown_function('errorHandler');
function errorHandler() {
$error = error_get_last();
/*code*/
}
我们如何使用 ruby 做到这一点?
最佳答案
高级解决方案使用exception_handler gem
如果您只想捕获所有异常并将示例放入您的日志中,您可以将以下代码添加到 ApplicationController
:
begin
# do something dodgy
rescue ActiveRecord::RecordNotFound
# handle not found error
rescue ActiveRecord::ActiveRecordError
# handle other ActiveRecord errors
rescue # StandardError
# handle most other errors
rescue Exception
# handle everything else
end
您可以在此 thread 中找到更多详细信息.
关于ruby - 如何捕获 ruby 中的所有异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42029690/