一、编译期间并不能找出所有的错误,余下的问题必须在运行期间解决。这就需要错误源能够通过某种方式把适当的信息传递给某个接受者,该接受者知道将如何处理这个问题。
“异常”这个词有“我对此感到意外”的意思。问题出席那了,也许你不知道该如何处理,应该把这个问题教导更高级别的环境中,在这里将作出正确的决定。
可能出现的问题和错误:
1、用户输入错误。如需要输入数字却输入了字符等
2、设备错误。硬件出现问题。
3、物理限制。如磁盘满了。
4、代码错误。程序方法有可能无法正确执行。
二、
如果某个方法不能够采用正常的途径完成他的任务,就可以通过另外一种途径退出方法。在这种情况下,方法并不返回任何值,而是抛出(throw)一个封装了一个错误信息的对象。
Java中的异常分为受检查的异常与运行时异常。
Java中异常对象都派生于Throwable类。异常层次图:
Error描述了Java运行时系统内部错误和资源耗尽错误。应用程序不应该抛出error异常。
派生与RuntimeException的异常包含以下情况:
错误的类型转换;
数组访问越界;
访问空指针。
如果出现RuntimeException异常一定是你的问题。
标红色是受检查(Checked exception)的异常,必须内try{}catch{}语句块所捕获,或者在方法的签名里通过throws语句声明。命名为checked exception是因为Java编译器要进行检查,Java虚拟机也要进行检查,以确保这个规则得到遵守。绿色的异常时RuntimeException,需要程序员自己分析代码决定是都捕获和处理异常,如肯呢过指针,被零除。error不需要捕捉。