您的位置:首页 > 编程语言 > Java开发

Java学习笔记【异常、断言】

2015-09-26 22:33 579 查看

1、异常分类

所有异常都是由Throwable继承而来,然后划分为两类:Error和Exception。

Error类描述了Java运行时内部错误和资源耗尽错误。此种情况少见。

设计Java时需要关注Exception层次:一个为RuntimeException;另一个为其它异常。

RuntimeException:程序错误导致的异常。(错误类型转换、数组越界、访问空指针等)
其它异常:程序本身没问题,像I/O错误这类问题导致的异常属于其它异常。(打开一个不存在的文件、查找的类不存在等)

未检查异常:派生于Error类或者RuntimeException类的所有异常。


2、声明已检查的异常

一般形式:
class Myclass
{
...
public Image loadImage(String s) throws IOException
{
...
}
..
}


3、如何抛出异常

举例:
String gripe = "Content-length: " + len + ",Recieved: " + n;
throw new EOFException(gripe);

Java只能Throwable子类的对象,而在C++中,却可以抛出任何类型的值。


4、创建异常类

可能遇到任何标准异常类都不能满足自己的要求,此时需要创建自己的异常类,创建异常类示例:
class FileFormatException extends IOException
{
public FileFormatException(){}

public FileFormatException(String gripe)
{
super(gripe);
}
}


5、捕获异常

捕获异常,必须设置try/catch语句块。最简单的try语句块如下所示:
try
{
code
more code
more code
}
catch(ExceptionType e)
{
handle for this type
}


捕获多个异常:
try
{
...
}
catch(ExceptionType_1 e)
{
...
}
catch(ExceptionType_2 e)
{
...
}
catch(ExceptionType_3 e)
{
...
}


6、finally子句

不管是否有异常被捕获,finally子句总会被执行。
常用于放关闭资源(比如关闭打开的文本等)语句。


形式:
try
{
...
}
catch(ExceptionType e)
{
...
}
finally
{
...
}


7、使用断言

断言机制允许在测试期间向代码中插入一些检查语句。

Java语言引入了关键字assert。这个关键字形式:
assert 条件;
assert 条件:表达式;
这两种形式都会对条件进行检测,如果结果为false,则抛出一个AssertionError异常。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: