1

我的理解是,最好事先进行测试以避免异常,而不是捕获它们。有没有办法在尝试打开资产文件之前检查它是否存在?

4

1 回答 1

0

资产没有这样的功能,但是,不需要它(见下文)。

我的理解是,最好事先进行测试以避免异常,而不是捕获它们。

仅当异常是应用程序正常(预期)操作的一部分时,这才是正确的。换句话说,如果异常是统计上常见的事件(例如,您希望它“经常”在某个地方发生),那么捕获它可能会产生显着的性能成本。(在实践中,这仅在短时间内捕获许多异常的情况下才重要,因此基准测试始终很重要。)

由于您通常不希望在尝试访问某个资产时会丢失它(否则在您的应用程序中设计错误),因此可以对异常情况使用异常处理程序。

总而言之,带有异常的错误处理有性能成本,但错误(尤其是要抑制的错误)预计是罕见的事件。如果您希望在应用程序的某个部分经常发生错误,那么您的设计中可能有问题。(一些非常特殊的情况是可能的,但情况并非如此,但这些是非常罕见且非典型的应用领域。)

在实践中:在您的情况下,例如,如果资产名称来自外部(例如用户)输入,则可以使用异常。这是因为可能异常的“频率”很低。另一方面,如果您尝试确定许多资产是否存在(例如,在循环中),那么异常处理可能会产生不可接受的性能成本——但我很难想象会需要这样的东西。

于 2012-11-16T01:45:10.227 回答