异常、断言与日志

1.对于异常情况,Java使用一种称为异常处理(exception handing)的错误捕获机制处理。

Java中,如果某个方法不能够采用正常的途径完成它的任务,就可以通过另外一个路径退出方法。在这种情况下,方法并不返回任何值,而是抛出(throw)一个封装了错误信息的对象。

Java中所有的异常类都直接或间接地继承于Throwable类。除内置异常类外,程序员可自定义异常类。
Java中的异常类可分为两大类:

(1)Error:Error类层次结构描述了Java 运行时系统的内部错误和资源耗尽错误。应用程序不应该捕获这类异常,也不会抛出这种异常。

(2) Exception:Exception层次结构又分解为两个分支:一个分支派生于RuntimeException;另一个分支包含其他异常。

声明抛出异常在方法声明中用throws子句中来指明,多个异常之间用逗号隔开

抛出异常要生成异常对象,异常对象可由某些类的实例生成,也可以由JVM生成。

抛出异常对象通过throw语句来实现

某个异常发生时,若程序没有在任何地方进行该异常的捕获,则程序就会终止执行,并在控制台上输出异常信息。若要捕获一个异常,需要在程序中设置一个try/catch/ finally块
2.在程序运行时,如果关闭了断言功能,程序中的断言语句将不起任何作用。如果打开了断言功能,那么断言条件的值将被计算,如果它的值为false,该语句强抛出一个AssertionError对象
 断言仅在测试阶段用来定位程序内部错误