1.受检与非受检异常
受检异常:Exception
定义方法时必须声明所有可能会抛出的exception:在调用这个方法时,必须捕获它的checked exception,不然就得把它的exception传递下去:exception是从java.lang.Exception类衍生出来的。例如:IOException,SQLException就属于Exception
非受检异常:RuntimeException
在定义方法时不需要声明会抛出runtime exception:在调用这个方法时不需要捕获这个runtime exception;runtime exception 是从java.lang.RuntimeException或java.lang.Error类衍生出来的。例如:NullPointException,IndexOutOfBoundsException就属于runtime exception
package com.vince.ex;
/**
* 运行时异常类(非受检异常)
* @author lamp
*
*/
public class MyException extends RuntimeException{
public MyException(){
super();
}
public MyException(String message){
super(message);
}
}
package com.vince.ex;
public class Test {
public static void test(){
//..
throw new MyException("运行时异常");
}
public static void main(String[] args) {
try{
test();
}catch(MyException e){
}
}
}
2.assert关键字
assert关键字,表示断言
当程序执行到某个固定位置的时候,程序中的某个变量的取值肯定是预期的结果,那么这种操作可以使用断言完成。
断言的操作方法:
assert 表达式;
package com.vince.ex;
public class AssertDemo {
public static void main(String[] args) {
int x = 11;
assert x==10:"结果不正确";
}
// java -ea AssertDemo
}