java的异常体系和File类

1、异常

  • java异常是java程序运行过程中出现的非正常情况
  • 异常在程序中如果不能做处理,会导致程序中途瘫痪,不能正常完成特定功能
  • 异常一般情况是需要通过java异常 出来机制给屏蔽或者处理掉

        异常对象产生后,会根据代码对异常的处理机制进行操作,其中异常处理机制包括捕获异常和抛出异常两种,如果没有异常操作,则java程序会中断执行


Java异常体系继承机构图

2、异常处理

捕获异常处理机制:trycatch

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 异常类型{

  //存在异常的代码块

}


throw异常对象注意:

throw一般存在于catch语句当中,用于出现异常后的一种操作方式
捕捉的异常和抛出的异常不一定相同,可以不一样
throw抛出的异常对象如果是检测异常,则所在的方法必须要通过throws显性抛出
throw抛出的异常对象如果是非检测异常,则方法上可以选择性定义throws



3、try...catchthrows

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类

File类是java中提供给程序操作硬盘文件的方式,可以来获取当前关联硬盘文件的相关属性,包括文件名、路径、大小、修改日期等。

(注意: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());
}
}

运行结果:













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值