![]() |
1
2
忽略异常的主要问题是,对于与您不想隐藏的重复记录完全无关的其他问题,例如SQL超时或死锁等,可能会引发异常。 最好的解决方案是构造应用程序,这样就不会发生dupes插入,其次最好是在执行插入之前检查它们的存在。 如果性能非常关键,则无法避免dupes插入,dupes插入与工作插入的比率非常小,并且您可以知道引发的异常只是由于重复问题,您最好只捕获异常并忽略它。但这是一个有很多条件的if:-) |
![]() |
2
2
一般来说,你应该先检查一下。 但可能更准确地说,您应该构建应用程序的接口,这样它就不会在通过典型的用户交互甚至可能生成您需要检查的情况的地方出现这种情况。 不管怎么做,最好的做法是检查。 |
![]() |
3
2
就性能而言,抛出异常代价很高。而且,每次你得到的例外情况都不能保证是出于同样的原因。在再次添加行之前,应始终检查该行是否存在,因为您知道问题可能首先存在。 例外情况适用于例外情况——这不是例外情况,这是创建数据的正常流程的一部分。 |
![]() |
4
1
虽然不太可能,但不检查并插入记录是否为比赛条件?如果是这样,您应该为它编写防御程序,这意味着捕获并检查任何异常。 在这种情况下,您应该先检查异常的类型和/或它的基本错误号,然后再选择忽略它。这样,您就可以忽略与尝试插入重复记录(可能是主键约束冲突)相关的异常。您将希望以不同的方式处理其他类型的异常。 |
![]() |
5
0
如果您确定记录不是因为已经存在而插入的,那么应该可以。另一种聪明的忽视例外可能会隐藏一些危险的东西。 |
|
lfox · 如果列中不存在某个值,则停止代码执行 2 年前 |
![]() |
zaen · 将值传递到异常字符串消息中 2 年前 |
![]() |
Zephyr · 如何在双ListView选择系统上实现过滤器? 6 年前 |
![]() |
Aave · 错误数组长度的特定异常 6 年前 |