我在编程中可能使用异常的典型情况

我在编程中可能使用异常的典型情况

有人能帮我解决一些看似简单但我从未真正理解的问题吗?异常!我知道如何编写异常,但无数带有变量的代码示例foobar没有帮助我了解这些变量在现实生活中的实际用途。

是否有可能停止执行过程?我必须承认我从未使用过它们,我只是不知道如何使用它们。但我确信它们很重要。我想如果有什么事情要发生,我就让它发生,它无论如何都会向屏幕抛出一个错误并停止执行。异常的目的是不出现这样的错误并捕获错误,并将消息传递给视图以输出?然后这引出了我的下一个问题,我怎么知道我的代码的哪些部分可能会中断?我应该把所有东西都包装在异常句柄中吗?这些应该在我的代码中有多广泛?

抱歉,有些东西似乎很容易理解,我只是从来没有设法正确理解它们的用法。如果有人能至少给我指出正确的方向,我将不胜感激,如果能给出一些关于哪些代码需要包装的真实示例,我将不胜感激。谢谢

答案1

我认为,当程序进入程序员认为错误的状态时,就会出现异常,以提醒程序此错误,并可能以另一种方式(捕获)继续执行或只是清理。

简单的东西应该总是有效的,比如使用小值的简单算术,字符串操作或简单的函数调用,我从不处理,除非它们可能是递归的或依赖于一些不稳定的输入。

当程序严重依赖用户操作或其他 I/O(文件、数据库、套接字)时,我通常使用 try/catch - 我无法非常准确地预测这些变量的值(如果它们依赖于远程服务,可能会耗尽内存或超时)

如果您还没有,请尝试编写一些 Java 程序,看看它的制作者会考虑哪些需要异常的情况。

以下是一个例子:我需要欧元兑美元的当前货币汇率

  • 数据是否已在缓存中且不超过 5 分钟?则使用它。如果不是:
  • 尝试使用网络服务从网站获取最新因素。
  • 如果请求的值在响应中找不到或偏离 I例外
  • 抓住我会
    • 尝试从数据库/文件中获取最后保存的因素
    • 如果由于某种原因无法返回数据库中的数据,我再次
    • 抓住异常,将数据库问题写入日志(可能在另一个 try/catch 中,以防磁盘已满并且无法写入日志)和
      • 使用代码中的一些常数因子(或者写“抱歉,无法获取当前转换数据”

相关内容