异常类的知识

Exception(异常类)

  • java异常结构中定义有Throwable, Exception和 Error是其派生的两个子类。其中Exception表示由于网络故障,文件损坏,设备错误,用户输入非法等情况导致的异常,而Error表示java运行时环境出现的错误,例如jvm内存资源耗尽。

  • 异常出来就是当异常发生的时候妥善地终止程序,避免灾难性后果的发生,具体的操作通常

  • 包括:

  • 通知:向用户通知异常的发生。

  • 恢复:保存重要的数据,恢复文件,回滚事务等

  • 退出:以更好的方式结束程序的运行

异常捕获:try.... catch

try:

尝试执行代码块,如果有异常,就执行catch语句块。如果没有异常,就跳过catch。

catch语句块:

应该先捕获小类型的异常,或捕获大类型的异常。

执行完之后,继续执行程序后续代码;提示程序员自己,具体是什么异常,我们就可以参考这个异常,修改程序;多个catch,只会执行其中的一个catch语句块,先捕获子异常类型,再捕获父的异常类型,

抛出异常---throw语句:

使用throw主动抛出某个异常类型,定义方法的时候,可以选择使用throw抛出异常。 throw new xxx,一次只能throws一个,可以抛出多个异常

public static void main(String[] args) {
 try {
     String s=null;
     s.length();
 }catch (NullPointerException e){
     System.out.println(e.getMessage());
 }
 throw new NullPointerException();//抛出异常
    System.out.println("5464");//编译错误。throw之后的代码不能执行到。
}

finally语句块:

不管try抛不抛异常,都要执行。

int a=10;
try {
    int k=1;
    int m=10/k;
    a++ ;
    return a;
}catch (ArithmeticException e){
    a++;
    return a;
​
}finally {
    a++;
    return a;
}

如果没有finally,程序这里就结束了。但是这里有finally,就必须执行finally代码块

自定义异常的使用

主要使用super()调用父类的构造器函数,使用super,方法名调用父类的方法 编译时异常(编译的时候,就需要处理这个异常)

​
class GenderException extends Exception{
    public GenderException(){
​
    }
    public GenderException(String msg){
        super(msg);//调用父类的构造器函数
    }
    //2.重写普通方法
​
    @Override
    public String getMessage() {
​
        return super.getMessage();//调用父类的方法
    }
​
    @Override
    public void printStackTrace() {
        System.out.println("my...........");
        super.printStackTrace();//调用父类的方法
    }
}

重写的异常处理

如果父类的方法抛出了异常,那么子类重写父类的时候,异常可以如下处理:

  • 不处理异常(重写的时候,不抛出异常)

  • 可以只抛出部分异常

  • 可以抛出异常的子异常

  • 抛出其他运行时异常

    但是不可以如下操作:

  • 重写的时候抛出父类方法没有抛出的非运行时异常

  • 重写的时候抛出父类没有抛出的Exception

File(文件或目录)

java.io.File用于表示文件(目录),程序员可以通过File类在程序中操作硬盘上的文件或目录。

File类只用于表示文件(目录)的信息(大小,名称等),不能对文件内容进行访问构造函数:File(String path)

常用方法:file.isDirectory() 是否是文件夹;file1.isFile()是否是文件;file1.getName() 文件名;file1.getAbsolutePath()文件绝对路径;file1.canRead() 读;file1.canWrite() 写;file1.canExecute() 执行

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值