异常是程序运行中遇到事先没有预料到的事叫异常
还是事先定义好可能出现的意外情况?
异常和 bug 是一样的吗?
1
cxbig 2015-10-23 16:18:51 +08:00
程序里异常是 Exception ,通常来说它是一种运行机制,可以由很多原因触发(写错代码、收到错误的反馈等),然后可以通过一定的机制去 catch 然后根据实际情况进行处理。属于比较主动的程序行为。
bug ,算是一种设计失误。写错代码直接报错、设计的算法没有得到正确的结果、逻辑错误等。 |
2
scream7 2015-10-23 16:31:07 +08:00
关注中,我对这个也一直有点不了解.
如果我们能预料到 exception,并 catch 住,为什么不直接使用 if 判断,assert 呢? |
3
watzds 2015-10-23 16:42:26 +08:00 via Android
异常是难以避免的,可能出现的异常情况
我想它还有一些跳转的功能,向上层抛出等 有些底层就是通过 if else 抛出异常吧 不用异常, ifelse 写起来会很多吧 Java 里的检查异常,还能强制你去关注可能出现的异常情况,你通过返回值,或者全局变量,就没法实现 |
4
caoyue 2015-10-23 16:58:15 +08:00
我的理解:
异常是遇到无法处理的情况 举个例子,比如定义返回类型是 int 操作是 a/b ,这时传进来一个 b=0 你要怎么返回? 只能抛出异常了 |
6
Troevil 2015-10-23 19:20:05 +08:00
异常可以理解为可预料到的 BUG ,
|
7
Angdo OP @scream7 我的感觉是既然用 exception 那么肯定是一个在其子类定义的异常情况,那么就应该算是事先预料到的可能情况,没有预料到的还能是异常?
|
11
cxbig 2015-10-23 20:04:51 +08:00 1
@Angdo
Bug 通常形容意料之外的错误、或导致程序中断。 Exception 通常来说是准备好的问题处理机制。 当然,在 OOP 环境里,某个环节没有加入 Exception 的处理,导致程序中断。我们就认为是一个 Bug 。 |
12
watzds 2015-10-23 20:30:31 +08:00 via Android
“异常”就是处理异常情况的一种机制,分什么可预料不可预料。异常情况出现的时机不可预料,异常情况是否出现最终都是可判断的。你说什么不可预料,举个例子
|
14
learnshare 2015-10-23 21:26:13 +08:00 1
异常就是知道会发生的错误,预先做好处理方案; Bug 就是没考虑到的错误
|