java复习第十四天[异常]

异常的概念

简介:异常是阻止当前方法或者作用域继续执行的问题,在程序中是指出现各种不期而至的状况:如文件找不到,网络连接失败,非法参数等等,对与异常java把他转换为对象,专门有一个处理异常的祖宗类Throwable类.

关于java中异常的5个关键字:try catch finally throw throws

异常的三种分类

异常基本分为三种分类:

  • 检查性异常:不能通过编译时期的异常,通常是文件找不到,或者文件丢失,需要手动抛出异常。
  • 运行时异常:运行时异常表示只有在运行程序时才会报出的异常,如:算术异常,和递归的内存溢出等等。
  • 错误(Error):错误不是异常 ,而是脱离了程序员的控制,错误在代码中通常被忽略,如当栈溢出时一个错误就发生了他们在编译时期是检查不到的.

异常的基本使用

异常Throwable类是所有异常类的超类,他下面有两个大类一个是Error(错误)类和Exception(异常)如图:

Error(错误):错误是无法被程序本身处理的问题.

Exception(异常):异常能被程序本身可以处理,如:算数异常

抛出异常:出现了异常可以向上抛出,通常用来告诉上面的程序有异常,让别的程序去处理,使用throw来抛出.

捕获异常:通常用于捕捉肯出现异常的代码,使用try-catch或者try-catch-finally去捕获,基本语法为:

try{
    //可能出现异常的代码
}catch(异常类型 异常名){
    //出现异常后怎么解决的代码
}finally{
    //出不出异常都会执行的代码
}

自定义异常

        自定义异常需要去继承Exception类,如;

public class Test extends Exception{
    String a;

    //有参构造
    public Test(String a){
        this.a=a;
    }

    @Override
    public String toString() {
        return "该用户"+a+"已被使用";
    }
}

使用该异常类:

import java.util.ArrayList;
import java.util.Scanner;

public class MyTest {
    public static void main(String[] args) throws Test {
        //定义一个创建名字的小程序
        ArrayList list=new ArrayList();//已经存在的用户名
        list.add("张三");
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入要创建的用户名:");
        String a=scanner.nextLine();
        for (int i = 0; i < list.size(); i++) {
            if(list.get(i).equals(a)){
                throw new Test(a);
            }
        }
        list.add(a);
        //打印lst
        for (Object l:list){
            System.out.println(l);
        }
    }
}

常见的异常:

序号异常名称异常描述
1java.lang.ArrayIndexOutOfBoundsException数组索引越界异常。当对数组的索引值为负数或大于等于数组大小时抛出。
2java.lang.ArithmeticException 算术条件异常。譬如:整数除零等。
3java.lang.SecurityException 安全性异常
4java.lang.IllegalArgumentException非法参数异常
5java.lang.ArrayStoreException 数组中包含不兼容的值抛出的异常 
6java.lang.NegativeArraySizeException数组长度为负异常 
7java.lang.NullPointerException空指针异常。当应用试图在要求使用对象的地方使用了null时,抛出该异常。譬如:调用null对象的实例方法、访问null对象的属性、计算null对象的长度、使用throw语句抛出null等等。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

123小步

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值