C# NET中的错误和异常之间有什么区别?

C# NET中的错误和异常之间有什么区别?,c#,.net,exception,C#,.net,Exception,您能解释一下错误和异常之间的区别吗?异常是从系统.exception类派生的类型的对象。它在throw语句中用于将控制权转移到try块中调用堆栈更上层的catch子句 错误只是您要解释的一些代码或消息。错误代码的问题在于,您可以决定忽略它们: MethodThatReturnsAnError(); SomeCodeThatShouldNotExecuteOnError(); 如果返回错误代码,该调用将忽略错误代码。然而: MethodThatThrowsAnException(); SomeC

您能解释一下错误和异常之间的区别吗?

异常是从
系统.exception
类派生的类型的对象。它在
throw
语句中用于将控制权转移到
try
块中调用堆栈更上层的
catch
子句

错误只是您要解释的一些代码或消息。错误代码的问题在于,您可以决定忽略它们:

MethodThatReturnsAnError();
SomeCodeThatShouldNotExecuteOnError();
如果返回错误代码,该调用将忽略错误代码。然而:

MethodThatThrowsAnException();
SomeCodeThatShouldNotExecuteOnError();

这不能被忽略,并将控制权转移到堆栈上,超过“
SomeCodeThatShouldNotExecuteOnError();

异常是一个利用语言语义的类。正如其他人所说,异常会中断堆栈上的执行,直到捕获为止。异常可以用来传递错误,但更普遍的是用来传递发生了异常的情况

另一方面,错误可能是异常的,也可能不是

有几种错误:

  • 用户错误-应无例外地处理此错误
  • 语法错误-这不应该在静态类型语言中编译(在动态语言中,它们更难发现)
  • 运行时错误-这将导致异常或自动失败(通常会创建意外结果)
实际上,异常应限于处理运行时错误,因为用户输入错误数据不是“异常”。要处理用户错误,应采取以下方法:

  • 防止输入错误数据(前端验证)
  • 防止保留坏数据(后端验证)

异常应作为用户错误的“最后一道防线”。如果您正在编写一个持久性层,您可以依靠异常来确保通过验证的坏数据不会持久化。但是,您应该通过在验证中添加一个修复程序来修复这些问题,以防止错误首先发生。

异常:当某个操作中的某个步骤失败时,该操作中的所有后续步骤都不会执行。这就是例外的所在

错误:与第一种情况类似,您希望暂停当前代码的执行,但在您需要释放以前分配的任何资源之前


话虽如此

异常类已被删除。HRESULT是一个32位的值,分为三个不同的字段:严重性代码、设备代码和错误代码

看看这篇文章,会帮助你更好地理解


    • 异常是报告和处理执行失败的一种方式。换句话说,它们是用来传达错误条件的(意译本书中的Krzysztof Cwalina)。

      必须编写代码才能忽略的异常。错误代码您必须编写代码才能不被忽略。

      通常,我将它们分类为:

      错误-是应用程序中的已知工作流。例如:身份验证期间未提供用户名是一个错误。
      应用程序可以处理这些情况,并且能够向用户显示友好消息,以提示正确输入和/或以不同的方式处理数据

      异常-通常在退出系统和/或应用程序中发生意外情况时抛出。例如:打开文件句柄可能会由于权限不足或文件不存在而引发异常。
      通常在这种情况下,应用程序可以捕获这些异常和/或编写通用处理程序来处理系统中的所有异常

      根据经验,如果您知道某个特定案例的存在导致应用程序无法继续工作,请将其标记为错误并优雅地处理该案例

      所有剩余的“未知未知”都可以归入例外类别


      HTH.

      如果给定异常不存在异常处理程序,程序将停止执行,并显示错误消息

      未处理的异常是错误。所以所有的错误都是例外,但事实并非如此。 异常处理技术处理异常/意外情况(错误),而错误是我们没有预料到会发生的情况,因此我们必须明确地通过将用户重定向到某个静态HTML页面并将其捕获到日志中并为发生的错误提出解决方案来处理这些情况

      错误可能发生在两个级别

      • 页面级别(在页面指令中使用ErrorPage属性)
      • 应用程序级别(需要在web.config中处理)
      汇编 自定义错误。。。自定义错误 错误。。。。错误 汇编 注意-页面级错误处理覆盖应用程序级错误处理

      异常处理:->

      • 本地(方法级)

        • 页面级别
        • 应用水平
        • Http模块级
        意志 链接->


        • 错误是事件。Exception类表示在应用程序执行(运行时)期间发生的错误,并提供一种使用try-catch块处理这些错误的机制。 错误可能是运行时错误或编译器错误

          错误事件的示例: HttpApplication.System.Web dll的错误事件,FileSystemWatcher.System.IO的错误事件 两个DLL具有相同的错误事件定义

          public event EventHandler Error
          
          来自.Net Framework 4.5文档

          Exception类表示在应用程序执行期间发生的错误

          错误和异常

          运行时错误的发生可能有多种原因。但是,并非所有错误都应在代码中作为异常处理。下面是运行时可能发生的一些错误类别以及相应的响应方法

          使用错误。使用错误表示程序逻辑中的错误,该错误可以