C# 我应该使用异常处理还是检查值

C# 我应该使用异常处理还是检查值,c#,exception-handling,conceptual,C#,Exception Handling,Conceptual,我需要一些关于概念问题的帮助 基本上,我有一些来自已知来源的数据。我知道所有的数据可能都没有价值。我有两个选择 备选案文1: 我可以在存储之前检查所有数据,以防止无效的强制转换异常 备选案文2: 我可以让它抛出一个异常 现在我知道了一个事实,使用主动错误处理方法并检查空值是最佳实践;然而,我确信从表到对象的一百万个映射中,我的错误不会超过两个。我应该抛出异常还是进行检查 人们通常说进行检查是因为异常比简单的检查占用更多的资源;但是,当您需要执行超过一百万次检查而不是1次异常时,是否会出现这种情况

我需要一些关于概念问题的帮助

基本上,我有一些来自已知来源的数据。我知道所有的数据可能都没有价值。我有两个选择

备选案文1: 我可以在存储之前检查所有数据,以防止无效的强制转换异常

备选案文2: 我可以让它抛出一个异常

现在我知道了一个事实,使用主动错误处理方法并检查空值是最佳实践;然而,我确信从表到对象的一百万个映射中,我的错误不会超过两个。我应该抛出异常还是进行检查


人们通常说进行检查是因为异常比简单的检查占用更多的资源;但是,当您需要执行超过一百万次检查而不是1次异常时,是否会出现这种情况?

在异常情况下应使用异常。百万分之二的声音对我来说是异常的。

在异常情况下应该使用异常。百万分之二的错误对我来说是异常的。

如果错误意外发生并中断了流程工作流,需要进行清理,这取决于错误类型。在这种情况下,必须抛出异常。如果错误是预期的,并且过程可以继续,那么在这种情况下,您永远不应该抛出异常


重要的异常只能发生在异常情况下,而不能发生在正常的工作流程中。

如果错误意外发生并中断了流程工作流程,则取决于错误类型,需要进行清理。在这种情况下,必须抛出异常。如果错误是预期的,并且过程可以继续,那么在这种情况下,您永远不应该抛出异常


重要的例外情况只能发生在例外情况下,而不能发生在正常的工作流程中。

资源/性能并不是这一决策的基础,尽管这是问题的历史框架。决策应基于这是流量控制还是例外情况。您的描述听起来像是后者。资源/性能并不是这一决策的真正基础,尽管这是问题的历史框架。决策应基于这是流量控制还是例外情况。你的描述听起来像是后者。