【问题标题】:what is the diffrence between error and exception错误和异常有什么区别
【发布时间】:2022-07-15 04:13:22
【问题描述】:

当我在谷歌上搜索时,它显示错误意味着编译时错误,异常是运行时错误?但我认为事实并非如此......

【问题讨论】:

  • 错误是一种无法修复的情况,只能报告。异常不是错误,这是必须处理的特殊情况。
  • 这个错误与异常的概念并不特定于数据库,它是编写代码的基本范式之一,代码可以被解释或者它是Error,解释或编译的代码可以在运行时引发Exceptions。在 MySQL(和其他 RDBMS)中,有一个 type 异常,称为 Error Exception,这进一步混淆了术语......
  • "如果引发的条件导致语句除了与引发条件相关联的内容(即,不是完成条件)之外没有任何效果,则称该条件为异常条件或异常。如果引发的条件允许语句具有与引发条件相关的效果以外的效果(对应于成功完成、警告或无数据的 SQLSTATE 类代码),则表示该条件作为完成条件。" ISO/ANSI SQL 标准。 IE。错误就是例外。

标签: mysql sql exception compiler-errors runtime-error


【解决方案1】:

这通常是正确的。尽管这些术语在许多领域都可以通俗地互换。

Error,也称为编译时错误,是事实陈述。 (或者不是事实)编译器无法编译输出。

  • 从技术上讲,错误是在编译器运行时引发异常的代码状态:)

Exception 在运行时 引发,是异常值组合的结果。

因为Exception 在运行时引发,我们通常可以编写代码来catch 和handle 或解决脚本或代码中的异常。 Error 会阻止代码被编译和执行,因此我们唯一的选择是修改代码以解析 Error。

编译器可能会执行 syntax 有时会执行 type 检查,以确保代码遵循一组预先确定的规则并且可以编译成可执行语句,但它是直到将无效值传递到可能发生异常的语句中,编译器更难做到这一点,因此通常仅在运行时检测到。

一些高级或专门的编译器可能会针对常见值执行检​​查,作为程序员,您可以编写单元测试来尝试并在发布代码之前先发制人地检测异常。

【讨论】:

    【解决方案2】:

    异常和错误是一回事。在软件历史的某些地方,有人提出了“例外是例外”这一短语。这听起来很吸引人,但它不会转化为异常和错误。如果你走那条路,那么谁来决定什么是卓越的?这是非常主观的,一个上下文的错误可能是一个异常而不是另一个异常。异常和异常是非常不同的词。显然有人认为这个朗朗上口的短语强化了存在差异的想法。

    它们是一样的。我不是 Java 开发人员,我意识到每个类都有不同的类,但在 .NET 世界中它们是相同的。 .NET 中首选的错误处理框架是 Exception 类。它不关心你想怎么称呼它,错误或异常。它也不关心它是否异常。它只是传达错误信息的工具。您可以通过创建和使用从 Exception 继承的类来传达错误的严重性。

    我的信息来源来自这里:

    Cwalina, K.、Abrams, B. F.、Barton, J.、Icaza, M. de 和 Hejlsberg, A. (2020)。框架设计指南:可重用 .net 库的约定、习惯用法和模式。艾迪生-韦斯利。

    【讨论】:

      猜你喜欢
      • 2011-08-14
      • 2013-04-15
      • 2011-01-26
      • 2018-09-15
      • 2011-02-24
      • 2020-12-20
      • 2020-05-20
      • 1970-01-01
      • 2019-11-26
      相关资源
      最近更新 更多