1、异常
- java异常是java程序运行过程中出现的非正常情况
- 异常在程序中如果不能做处理,会导致程序中途瘫痪,不能正常完成特定功能
- 异常一般情况是需要通过java异常 出来机制给屏蔽或者处理掉
2、异常处理
try{
//可能出现异常的代码部分
}catch(异常类型异常变量){
//执行异常操作
}catch(异常类型 异常变量){
//执行异常操作
}…
finally{
//处理完try与catch操作后的收尾操作,异常统一出口
}
-
catch定义,由上到下,异常类的范围必须由小到大或者同级别的
-
运行时异常,catch中可以随意定义类型,程序运行时,会根据catch参数自动匹配
-
非运行时异常,则catch中定义的异常,在try代码块中必须存在,如果没有类似异常存在,则不允许被定义
-
finally关键字,在进行异常处理之后,在异常的处理格式中还有一个finally语句,此语句将作为异常的统一出口,不管是否产生异常,最终都要执行此段代码
- 如果try中有return语句,则会先执行return语句,后执行finally,最后返回整个方法
异常抛出顺序示例:
public static void main(String[] args) {
Test1 t = new Test1();
System.out.println(t.test());
}
public int test(){
int a = 10;
int b =10;
int result = 0;
try{
result = a/b;
return t();
}catch(Exception e){
e.printStackTrace();
}finally{
System.out.println("执行了finally");
}
return -1;
}
public int t(){
System.out.println("执行了return");
return 10;
}
}
运行结果:
执行了return
执行了finally
10
抛出异常处理机制:throws方法抛出异常
public void test() throws 异常类型{
//存在异常的代码块
}
3、try...catch和throws
public void test() throws 异常对象类型{
try{
//存在异常的代码块
}catch(异常类型变量名){
throw 异常对象;
}
}
示例:public class Test2 {
public static void main(String[] args) throws Exception {
Test2 t= new Test2();
t.test();
System.out.println("=============");
}
public void test() throws Exception{
this.div();
System.out.println("aaaa");
}
public void div() throws Exception{
int a = 10;
int b = 0;
try{
int result = a/b;
}catch(ArithmeticException e){
throw new Exception("数学算法异常");
}
System.out.println("abcd");
}
}
运行结果:
4、File类
方 法 原 型 | 说 明 |
boolean exists() | 判断文件是否存在,存在返回true,否则返回false |
boolean isFile() | 判断是否为文件,是文件返回true,否则返回false |
boolean isDirectory() | 判断是否为目录,是目录返回true,否则返回false |
String getName() | 获得文件的名称 |
String getAbsolutePath() | 获得文件的绝对路径 |
long length() | 获得文件的长度(字节数) |
boolean createNewFile() throws IOException | 创建新文件,创建成功返回true,否则返回false,有可能抛出IOException异常,必须捕捉 |
boolean delete() | 删除文件,删除成功返回true,否则返回false |
File[] listFiles() | 返回文件夹内的子文件与子文件夹的数组 |
public class FileTest {
public static void main(String[] args) {
File file = new File("C:/Users/Administrator/Desktop");
//列出文件夹下的所有文件
if(file.isDirectory()){
//列出当前文件夹下的所有文件
File[] files = file.listFiles();
//遍历数组
for (int i = 0; i < files.length; i++) {
File f = files[i];
System.out.println(f.getAbsolutePath());
}
}
运行结果: