我们都使用DB::transaction()
多个插入查询。这样做时,应该将try...catch
其放置在内部还是包裹起来?甚至有必要try...catch
在交易出现问题时自动将交易失败的情况包括在内吗?
try...catch
包装交易的样本:
// try...catch
try {
// Transaction
$exception = DB::transaction(function() {
// Do your SQL here
});
if(is_null($exception)) {
return true;
} else {
throw new Exception;
}
}
catch(Exception $e) {
return false;
}
相反,DB::transaction()
包装try … catch:
// Transaction
$exception = DB::transaction(function() {
// try...catch
try {
// Do your SQL here
}
catch(Exception $e) {
return $e;
}
});
return is_null($exception) ? true : false;
或只是一笔没有交易的交易…抓住
// Transaction only
$exception = DB::transaction(function() {
// Do your SQL here
});
return is_null($exception) ? true : false;
如果您需要通过代码手动“退出”交易(通过异常还是只是检查错误状态),则不应使用DB::transaction()
,而是将代码包装在DB::beginTransaction
and
DB::commit
/中DB::rollback()
:
DB::beginTransaction();
try {
DB::insert(...);
DB::insert(...);
DB::insert(...);
DB::commit();
// all good
} catch (\Exception $e) {
DB::rollback();
// something went wrong
}
请参阅交易文档。
由于ELMAH记录未处理的异常,我想通过ELMAH来记录所有错误,这是否意味着我不应该在代码中的任何地方使用try-catch块?如果我不使用它,它将显示死亡的黄色屏幕,我相信我可以通过自定义错误页面处理。 所以,我认为如果你用ELMAH,试抓块就没用了,对吗?如果不是,在ELMAH中使用try catch的用例有哪些?
问题内容: 好的,这可能是一个非常愚蠢的问题,但是我发现关于此的PHP文档以及一些Internet搜索并没有使我对此有所任何了解。 什么时候应该使用try-catch块来改进我的应用程序? 我读过有人说我们应该仅使用try- catch块来防止致命错误。我读过别人的话说,我们应该只在意外错误上使用它(等什么?意外?如果它们是意外错误,如何使用try- catch防止它们出现?我应该将所有应用程序代
我应该如何在TypeScript中使用Try/Catch?我不希望它检查给定块中的任何错误,因为我已经检查了它们(错误是预期的,状态由catch控制)。 我将代码包装在Try/Catch中(仅为示例): TypeScript拒绝编译它。有没有办法告诉TypeScript我知道这个错误,并且我可以接受?我不想在每一行上都使用忽略(假设我可以有更长的代码),也不想关闭严格模式。有没有更好的解决方案?
问题内容: 我最初从大学开始编程,然后学习了vb.net。现在,我决定转向Java并进行一些查询。在vb中,try catch语句的布局如下 但是在Java网站(https://docs.oracle.com/javase/tutorial/essential/exceptions/putItTogether.html)中,我发现在Java中,您使用了两个陷阱,如下所示: 我希望有人能够解释为什么
问题内容: 我一直在开发一个Android应用程序,该应用程序经常使用以防止它崩溃,即使在不需要的地方也是如此。例如, 在视图与被引用,如: 在整个应用程序中都使用这种方法。堆栈跟踪没有打印出来,很难找到问题所在。该应用程序突然关闭而不打印任何堆栈跟踪。 我请我的长辈向我解释一下,他说: 这是为了防止生产崩溃。 我完全不同意 。对我来说,这不是防止应用程序崩溃的方法。它表明开发人员 不 知道自己在