Java中的异常和File类的使用


Java中的异常和File类的使用

一、异常的概念

        1、什么是异常?
        通俗理解:异于平常,本来一件事情正常执行,可能中途会有特殊情况,导致当前事情无法正常执行而影响执行结果,这个中途特殊情况即异常。
         例如:a/b这个操作,正常情况是没有任何问题,但是隐藏了一个问题,如果b为0,则这个除法操作将无法执行,则b为0的情况属于a/b这件事情的异常情况

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

         3、Java异常特点
        Java异常处理是面向对象处理方式
         一旦代码出现异常问题,JVM底层则会创建一个异常类相关的对象
        异常对象产生后,会根据代码对异常的处理机制进行操作,其中异常处理机制包括捕获异常抛出异常两种,如果没有异常操作,则java程序会中断执行

       4、Java异常体系继承结构图

       


二、异常处理之捕获异常

       1、 关键字try  catch
         try{
//可能出现异常的代码部分
  }catch(异常类型 异常变量){
//执行异常操作
}catch(异常类型 异常变量){
//执行异常操作
  }…
finally{
    //处理完try与catch操作后的收尾操作,异常统一出口

        2、 捕获异常注意事项:

        catch定义,由上到下,异常类的范围必须由小到大或者同级别的
运行时异常,catch中可以随意定义类型,程序运行时,会根据catch参数自动匹配
非运行时异常,则catch中定义的异常,在try代码块中必须存在,如果没有类似异常存在,则不允许被定义。
finally关键字,在进行异常处理之后,在异常的处理格式中还有一个finally语句,此语句将作为异常的统一出口,不管是否产生异常, 最终都要执行此段代码
如果try中有return语句,则会先执行return语句,后执行finally,最后返回整个方法


三、异常处理之抛出异常
       1、关键字:throws

      抛出异常处理机制:throws方法抛出异常
此异常主要是针对存在异常的代码块出现的异常问题,中止当前方法的执行
此方法把异常问题抛出给调用此方法的上一级函数当中,并调用出自行处理异常
格式如下:
        
  public void test() throws 异常类型{
//存在异常的代码块
}

        测试代码:
package com.huaxin.zhou;

public class ExceptionTest {
	
	public static void main(String[] args) {
		ExceptionTest et = new ExceptionTest();
		try {
			et.b();
		} catch (Exception e) {
			e.printStackTrace();
		}
		System.out.println("main方法执行完毕");
	}
	
	public void b() throws Exception{
		this.a();
		System.out.println("b方法执行完毕");
	}
	
	public void a()throws Exception{
		int a=10;
		int b=0;
		int result =a/b;
		System.out.println("a方法执行完毕");
	}

}


     执行结果:
     

    原理分析:

     


     2、抛出异常处理机制:throw抛出异常对象
此操作主要是对当前产生的异常对象进行抛出操作

常用的处理格式是结合try...catch和throws一起使用

public void test() throws 异常对象类型{
try{
//存在异常的代码块
}catch(异常类型 变量名){
throw 异常对象;
}
}

        3、 throw异常对象注意

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


       
四、File类的使用

     1、java.io.File类

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

注意:File类不能直接读写文件中的内容,只能查看和操作文件本身
     
        


测试代码:

package com.huaxin.zhou;

import java.io.File;
import java.io.IOException;

public class FileTest1 {
		public static void main(String[] args) {
			
			File file = new File("C:/Users/Administrator/Desktop");
			
			//1.判断当前文件是否存在
			System.out.println(file.exists());
			//2.判断是否为文件
			System.out.println(file.isFile());
			//3.判断是否为目录
			System.out.println(file.isDirectory());
			//4.获取文件的名字
			System.out.println(file.getName());
			//获取文件的绝对路径
			System.out.println(file.getAbsolutePath());
			System.out.println(file.length());
		}
}

运行结果:





测试代码二:

package com.huaxin.zhou;

import java.io.File;
import java.io.IOException;

public class FileTest1 {
		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());
				}
			}
}
}

运行结果:




五、使用File类进行文件的遍历(文件搜索器)
   

       里面详细讲解了File中list()和listFile()方法的区别,并有原代码;
 

六、总结:
        1、通过这次的学习,对Java中的异常的理解又深入了一些;
        2、我比较难理解的是try中有return时,先执行return方法,再执行finally方法;
        3、throws和throw我刚开始学的时候,非常难懂;现在没那么难理解了,throws抛出的是异常类型;throw抛出的是具体的异常对象,并且一般结合自定义异常来使用;
        4、文件File类,要搞清楚文件和目录(文件夹)的区别,以及File类的使用
        5、在理解的前提下多动手,不理解的时候可以通过代码测试来加深理解;
        6、共勉!


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值