JAVA-常用异常解释
运行时异常描述
异常 |
描述 |
ArithmeticException |
当出现异常的运算条件时,抛出此异常。例如,一个整数"除以零"时,抛出此类的一个实例 |
ArrayIndexOutOfBoundsException |
读取数组索引时下标越界抛出异常 |
IllegalArgumentException |
抛出的异常表明向方法传递了一个不合法或不正确的参数 |
ArrayStoreException |
试图将错误类型的对象存储到一个对象数组时抛出的异常 |
ClassCastException |
当试图将对象强制转换为不是实例的子类时,抛出该异常 |
IllegalMonitorStateException |
抛出的异常表明某一线程已经试图等待对象的监视器,或者试图通知其他正在等待对象的监视器而本身没有指定监视器的线程 |
IllegalStateException |
在非法或不适当的时间调用方法时产生的信号。换句话说,即 Java 环境或 Java 应用程序没有处于请求操作所要求的适当状态下 |
IllegalThreadStateException |
线程没有处于请求操作所要求的适当状态时抛出的异常 |
IndexOutOfBoundsException |
指示某排序索引(例如对数组、字符串或向量的排序)超出范围时抛出 |
NegativeArraySizeException |
如果应用程序试图创建大小为负的数组,则抛出该异常 |
NullPointerException |
当应用程序试图在需要对象的地方使用 null 时,抛出该异常 |
NumberFormatException |
当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常 |
SecurityException |
由安全管理器抛出的异常,指示存在安全侵犯 |
StringIndexOutOfBoundsException |
此异常由 String 方法抛出,指示索引或者为负,或者超出字符串的大小 |
UnsupportedOperationException |
当不支持请求的操作时,抛出该异常 |
声明自定义异常
public class MyException extends Exception{
private Integer code;
private String msg;
public MyException(Integer code, String msg) {
this.code = code;
this.msg = msg;
}
public Integer getCode() {
return code;
}
public String getMsg() {
return msg;
}
}
class TestMyException{
public void isItPositive(int num) throws MyException {
if (num < 0) {
throw new MyException(500,"传入的是复数");
}else {
System.out.println("当前数字:"+num);
}
}
public static void main(String[] args) {
TestMyException testMyException = new TestMyException();
try {
testMyException.isItPositive(-1);
} catch (MyException e) {
System.out.println("异常编码:"+e.getCode()+"异常信息:"+e.getMsg());
}
}
}