------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
异常
异常就是程序在运行时出现的不正常情况。
异常的由来:问题也是现实生活中一个具体的事物,也可以通过java的类的形式进行描述,并封装成对象。
其实就是java对不正常情况进行描述后的对象体现。
对于问题的而划分,有两种:①严重的问题。②非严重的问题。
对于严重的:java通过Error类进行描述。对于Error一般不编写针对性的代码处理。
对于非严重的:java通过Exception类进行描述。对于Exception可以使用针对性的处理方式进行处理。
如果在函数上声明异常
便于提高安全性,让调用者进行处理,不处理编译失败。
Throwable
|--Error
|--Exception
异常的处理, java提供了特有的语句:
|
try { 需要被检测的代码; } catch(异常类 变量) { 处理异常的代码;(处理方式) } finally { 一定会执行的语句; } |
一个标准的异常处理例子:
package zrl;
import java.io.*;
import java.io.IOException;
/*
* 标准的io异常处理
*/
public class File {
public void fileread() throws IOException{
FileReader fir = new FileReader("fi.txt");
char[] ch = new char[1024];
int num = 0;
while((num=fir.read(ch))!=-1){
System.out.println(new String(ch,0,num));
}
fir.close();
}
public static void main(String[] args) throws IOException {
FileWriter fi = null;
try{
fi = new FileWriter("fi.txt");
fi.write("1123");
}catch(IOException e){
System.out.println(e.toString());
}finally{
try{
if(fi != null);
fi.close();
}catch(IOException e){
System.out.println(e.toString());
}
}
File f = new File();
f.fileread();
}
}对捕获到的异常对象进行常见的方法操作。
String getMessage():异常信息
String toString():异常名称:异常信息。
void printStackTrace():异常名称,异常信息,异常出现的位置。
对多异常的处理
函数中,只要有一个异常发生,这个函数就会终止。
1.声明异常时,建议声明更为具体的异常,这样处理的可以更具体。
2.对方声明几个异常就对应有几个catch块。不要定义多余的catch块。
如果多个catch块中的异常出现继承关系,父类异常catch块放在最下面。
建议在进行catch处理时,,catch中一定要定义具体处理方式。不要简单定义一局e.printStackTrace(),也不要简单的就书写一条输出语句。
如何定义异常信息呢?
因为父类已经把异常信息的操作都完成了。
所以子类只要在构造时,将异常传递给父类通过super语句。
那么就可以直接通过getMessage方法获取自定义的异常信息。
自定义异常:
必须是自定义类继承Exception。还可以继承Throwable,
但是Throwable已经有两个派系了 我们只要继承Exception就行了。
继承Exception原因:
异常体系有一个特点:因为异常类和异常对象都需要被抛出。
他们都具备可抛性。这个可抛性只有Throwable这个体系中的独有特点。
只有这个体系中的类和对象才可以被throws和throw操作。
throws和throw的区别:
throws使用在函数上。throw使用在函数内。
throws后面跟的异常类,可以跟多个,用逗号隔开。throw后跟的是异常对象。
异常有两种:
编译时被检测异常。
运行时异常(编译时不检测)
异常的好处:
1.将问题进行封装。
2.将正常流程代码和问题处理代码相分离,方便与阅读。
异常的处理原则:
1.处理方式有2种。:try或者throws
2.调用到抛出异常的功能时,抛出几个,就处理几个。 一个try对应多个catch的情况。
3.多个catch,父类的catch放到最下面。
4.catch内,需要定义针对性的处理方式。
本文详细介绍了Java中的异常处理机制,包括异常的概念、分类、处理方式等,并通过实例演示了如何使用try-catch-finally语句处理异常。
448

被折叠的 条评论
为什么被折叠?



