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

Java异常

2015-07-28 10:10 399 查看
Java程序中出错有两种情况:

1. 出现异常Exception  --- 合理逻辑,正确捕捉完成逻辑

2. 出现错误Error      --- 虚拟机级别的错误,程序无法处理。一定要避免.

一、声明异常

当方法可能出现某些异常时,可在方法定义后面使用throws将可能的异常全部抛出(可抛出多个异常),如:

public void FileInputString(String name) throws FileNotFoundException{

}

二、异常处理

String str = "23sgvs4";

try{
int num = Integer.parseInt(str);                //try中运行代码,检查可能出现的异常,若出现异常,后面剩余代码不执行
System.out.println(num);
}catch(NumberFormatException e){               //catch将出现的异常进行捕获,执行后面大括号中的代码
System.out.println("数字格式转换异常");
}finally{                                                                  //无论是否出现异常,finally中的代码都会强制执行
System.out.println("程序结束!");
}

注:finally{  }: 无论什么情况都会被强制执行.通常用于释放资源,比如说io流,数据库连接,垃圾回收.为的是节省系统资源,

内存不会太满,提高计算机的性能.

三、自定义异常

public class
MyException extends Exception{

public MyException(){

}

public MyException(String msg){
super(msg);
}

@Override
public String getMessage() {
// TODO Auto-generated method stub
System.out.println("My Exception");
return super.getMessage();
}

}

四、异常种类

1、Exception 异常层次结构的根类,继承自Throwable

2、RuntimeException 许多java.lang异常的基类

3、NullPointerException 空指针异常

4、ArrayIndexOutOfBoundException 数组下标越界异常

5、NumberFormatException 数字格式化异常

6、IOException IO异常的根类

7、ArithmeticException 算术错误异常

8、ClassNotFoundException 不能加载所需的类

9、IllegalArgumentException 非法参数异常

10、FileNotFoundException 找不到文件异常

11、EOFException 文件结束

12、InterruptedException 线程中断异常

。。。

五、throw与throws区别

throw是有手动引发异常

if(getWatterline() >= getWarning()+9){
throw new MyException("决提了");
}

throws是有指定方法引发异常

public void FileInputString(String name)throws FileNotFoundException

注:1、throw只能抛出一个异常,通常用于自定义异常;throws能抛出多个异常,可以是java.lang包下的所有异常类,

也可以是自定义类;

2、方法使用throws抛出异常时,其本身不处理,但是调用该方法的方法要进行处理try-catch,或是继续抛出,

不然程序会报错
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: