我的应用程序应该如何处理这样的“安全”异常?
备注:
发布于 2021-02-01 21:27:24
根据应用程序的类型,有时取决于特定的事务,您需要选择以下选项之一:
对于#3,用户可能需要查看这两个更改的数据才能做出合格的决定,因此这可以成为相当大的努力来实现。在某些应用程序中,向用户提供将两个更改的部分合并为一个组合部分的选项(例如,Wikipedia提供了这样一个模型,当两个用户同时编辑同一篇文章时)。
不幸的是,没有一刀切的解决方案,你需要详细分析需求,然后选择你选择的折衷方案。
发布于 2021-02-02 11:12:08
我的应用程序使用错误报告来跟踪异常。
通过阅读这篇文章,我建议你似乎对“异常”有了自己的定义。
..。SQL事务..。操作已完全完成或根本没有完成。
所以你有原子事务。好的。
我的应用程序是多线程的
这不是问题,因为您有原子事务。
当超过一个事务试图做相同的事情时,就会出现异常.他们中只有一人会成功。当发生碰撞时,会引发异常,而reported.调查异常需要时间。
我把报告例外看作是一种“最后的手段”。
对于捕获代码来说,对异常做一些事情要好得多,这样在理想情况下,当捕获代码完成时,就好像没有发生异常一样。但是,在数据库事务的情况下,这可能不实用,因为根据定义,数据“景观”将在您第一次尝试之后发生变化(被另一个事务破坏了,因为它成功了)。让用户选择再试一次是更可行的。
大多数由数据访问框架引发的异常将包含(具有讽刺意味的)某种错误号/代码或"sql状态“。它很可能因DBMS而异,但您应该能够查询这些属性,以确定异常是“安全的”异常还是真正的“坏”异常。
https://softwareengineering.stackexchange.com/questions/421736
复制相似问题