除以零是错误还是例外?

时间:2011-03-25 18:18:14

标签: exception programming-languages error-handling

基本上我想知道如何区分错误和异常。在某些编程语言中,访问不存在的文件会引发错误,而在其他编程语言中则会引发异常。你怎么知道某件事是错误还是例外?

4 个答案:

答案 0 :(得分:2)

与其他任何东西一样 - 您要么测试它,要么阅读文档。它可以是基于语言的“错误”或“例外”。

例如

<强> C:

崩溃并给出除零错误。

<强>红宝石:

>> 6 / 0
ZeroDivisionError: divided by 0
from (irb):1:in `/'
from (irb):1

(ZeroDivisionError实际上是一个例外。)

<强>爪哇:

代码:

int x = 6 / 0;

输出:

Exception in thread "main" java.lang.ArithmeticException: / by zero

答案 1 :(得分:1)

取决于语言

  • 某些语言没有例外
  • 某些语言不会对所有内容使用例外。


例如,在PHP中:

  • 有例外
  • 但除以0不会导致抛出异常:只会引发警告 - 这不会停止执行脚本。

以下代码部分:

echo 10 / 0;
echo "hello, world!";

会给出这个结果:

Warning: Division by zero in /.../temp.php on line 5
hello, world!

答案 2 :(得分:1)

答案 3 :(得分:0)

异常应该表示特殊活动,所以如果你在代码中达到了你已经尽力避免除以零的点,那么抛出异常(如果你能用你的语言)是正确的方法

如果检查除以零的常规逻辑(比如计算器应用程序)那么你应该在它有机会引发异常之前在代码中检查它。在这种情况下,它是一个错误(在用户输入中),应该这样处理。

(从实用程序员或代码完成中窃取这个想法;不记得哪个。)