15 为什么会有异常?

来源:互联网 发布:用户行为分析 算法 编辑:程序博客网 时间:2024/04/29 10:05

为什么会有异常?

为了使程序更好的运行。

很多教程里都举例:10/0 (0不能作为分母),这样会报异常。

我常想,那么为什么不用if…else来解决这件的问题。

然而,真实的情况是:我们并不知道未来会发生什么。

比如说,电脑一个文件夹路径,本来我用的好好的,突然有一天,来了一个人,将这个文件剪切走了,我并不知道这个文件被剪切走了,无法再找到这样的文件了,这样会造成很多不必要的误会。所以,我们打算使用一个异常处理机制throws,相当于一个调解员,告诉我这个文件已经不存在了。当然,我们还可以自己处理try…catch…finally。

只要try捕获到异常,我们要么catch,要么finally,因为我们不能放着异常不管。

所以就有下面三种组合方式:

  • try…catch
  • try…finally
  • try…catch…finally

什么时候try,什么时候throws呢?

根据上面所看到的,如果后面的事要继续处理catch/finally,那么我们就要用try,如果不用继续处理,直接throws就可以了

注意:这里是throws,而不是throw。


throws 与 throw之间的区别是什么呢?
  • throws

    • 用在方法声明后面
    • 可以跟多个异常类名,用逗号隔开
    • 由方法的调用者来处理
  • throw

    • 用在方法体内
    • 只能抛出一个异常对象名
    • 由方法体内的语句处理
0 0