java入门~第二十天 IO概述、会出现的异常以及File的创建

1.IO的概述

1.1IO流概述

IO流用来处理设备之间的数据传输,上传文件和下载文件。

1.2IO流前奏

讲解IO流之前为什么先讲解异常和File类呢?
因为File表示的是IO流将来要操作的文件,所以我们需要学习File类。
而常见操作文件无非就是上传文件和下载文件,在这个操作的过程中可能出现问题,出现问题后,我们需要对对应的代码进行处理。所以我们需要学习异常。

2.异常

处理异常的快捷键 ctrl+alt+T
对于编译期异常,按 alt+enter  自己选一下处理方式

2.1异常的概述和分类

1.异常的概述: 异常就是Java程序在运行过程中出现的错误。

2.异常的分类:

编译期异常:发生在编译期,非RuntimeException及其子类,编译期异常必须处理,不处理程序无法运行。

运行期异常:RuntimeException,不处理可以正常运行。

总结:所有异常都继承Throwable,异常机制并不是只有坏处理,合理利用异常可以提高程序的健壮性。
在这里插入图片描述

3.异常的继承体系:

​ 异常的基类: Throwable
​ 严重问题: Error 不予处理,因为这种问题一般是很严重的问题,比如: 内存溢出
​ 非严重问题: Exception
​ 编译时异常: 非RuntimeException
​ 运行时异常: RuntimeException

2.2JVM默认是如何处理异常的

main函数收到这个问题时,有两种处理方式:
a:自己将该问题处理,然后继续运行,即try…catch…finally
b:自己没有针对的处理方式,只有交给调用main的jvm来处理,即throws,jvm有一个默认的异常处理机制,就将该异常进行处理.并将该异常的名称,异常的信息.异常出现的位置打印在了控制台上,同时将程序停止运行。

​ 例如:1/0

public static void main(String[] args) throws IOException {
   
  // 运行期异常: RuntimeException及其子类 运行期异常我们自己可以解决,也可不不解决
    int a=10;
    int b=0;
    //ArithmeticException 除数为0的异常
    System.out.println(a/b);
    //Exception in thread "main" java.lang.ArithmeticException: / by zero
    // 对于运行期异常,我们自己自己没有处理,就交由JVM去处理,JVM的默认处理方式是
    //打印详细的异常信息,然后退出虚拟机。
    // 如果你觉得JVM默认处理异常的方式,不够友好,那么我们可以自己去捕获这个异常,自己来处理
    System.out.println("下面代码");//没有运行
}

2.21try…catch的方式处理异常1

try…catch处理异常的基本格式:

try	{
   
	可能出现问题的代码 ;
}catch(异常名 变量名){
   
	针对问题的处理 ;
    //可以输入自己需要的信息,或者调用printStackTrace打印异常信息。
}finally{
   
	释放资源;
}

变形格式:
		try	{
   
			可能出现问题的代码 ;
		}catch(异常名 变量名){
   
			针对问题的处理 ;
		}
//后面的程序继续运行

注意事项:
a: try中的代码越少越好
b: catch中要做处理,哪怕是一条输出语句也可以.(不能将异常信息隐藏)

例如:

public static void main(String[] args)  {
   
    // 运行期异常: RuntimeException及其子类 运行期异常我们自己可以解决,也可不不解决
    int a = 10;
    int b = 0;
   
    try {
   

        System.out.println(a / 0);
    }catch (ArithmeticException e) {
   
        System.out.println("除数为0了");//除数为0了
    }
    System.out.println("下面代码");//下面代码
    System.out.println("下面代码");//下面代码
}
public static void main(String[] args) {
   

    int a = 1;
    int b = 0;
    
    try {
   
        System.out.println(a / b);
    } catch (ArithmeticException e) {
   
        //System.err.println("数学异常");
        e.printStackTrace(); //打印异常的详细信息。
        //System.out.println(e.toString());
        //System.out.println(e.getMessage());
    }
    System.out.println("下面代码");
    System.out.println("下面代码");
    System.out.println("下面代码");
}

例如:

public static void
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值