【问题标题】:Exception Handling: Meaning and Semantics异常处理:含义和语义
【发布时间】:2011-05-29 12:26:06
【问题描述】:

异常处理:他们实际上做了什么。

考虑我正在读取文件以供输入的场景,并且我想将 try/catch 文件打开和读取代码放在 try/catch 子句中。 如果读取文件出错(文件不存在等)会发生什么。代码进入了 catch 块,但我应该在里面放什么。

catch块有什么用,catch块是否暂停了程序的正常运行,程序在catch块之后存在?

提前感谢您消除这些疑虑!!!

【问题讨论】:

  • 它们在大多数语言中的意思不一样吗?无论如何,在 Java、C++ 和 Python 中

标签: exception


【解决方案1】:

由于您没有提供特定的语言,我只是作为一个一般概念来回答。

当遇到异常时,代码会跳转到catch块,跳过异常和catch块之间的所有代码。

对于您应该在 catch 中添加什么没有一般的答案。这完全取决于您的具体情况。您通常希望在某处记录错误,然后采取一些适当的措施。什么是“适当的行动”可以有很大的不同。如果失败的代码是由用户启动的,您可能希望向用户返回一些错误消息。如果它是在某种夜间工作中,您可能需要发送一封电子邮件,提醒某人该问题等。

【讨论】:

  • 我也见过类似 OutofBounds Exception 的东西。这个异常是否意味着我们正在尝试访问错误的数组索引。这是否意味着代码有问题,好像写得正确不应该抛出越界异常
  • 同样,不确定我们在这里讨论的是哪种语言,但是是的,OutOfBounds 意味着您正在尝试访问数组中超出数组范围的项目。假设您的数组有 3 个元素,并且您尝试访问第 5 个元素,这将引发此异常。一般来说,这是由编写不当的代码造成的。
  • OK 让我们缩小到 C++,下面给出了一个具体的例子(这个例子取自异常处理教程) try { // code here } catch (int param) { cout
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-11
  • 2015-07-01
  • 2020-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多