异常随笔(1)


异常

异常是指程序执行时,没有按照预期进行的情况
比如:请输入一个整数,结果用户输入了“abc”


一、异常会导致什么结果?

程序终止!!(用户体验极差)

二、常见的异常(exception)

1.InputMismatchException   // 输入不匹配异常
2.ArrayIndexOutOfBoundsException // 数组下标越界异常
3.ClassCastException // 类型转换异常
4.ArithmeticException // 算术异常
5.StringIndexOutOfBoundsException // 字符串下标越界异常
6.NullPointerException // 空指针异常
7.ParseException // 解析异常
8.IllegalArgumentException//非法数据异常
9.RuntimeExpection//运行时异常
10.IllegalThreadStateException
extends IllegalArgumentException//抛出以指示线程不处于所请求操作的适当状态。 
11.FileNotFoundExpection//找不到文件异常
12.MySQLIntegrityConstraintViolationException//数据库完整性约束异常
13.MySQLSyntaxErrorException//sql语句有误异常
(Parameter index out range (2 > number of parameters, which is 1))参数索引超出范围

三、异常的分类

受查异常:性格刚烈,如果不处理则编译无法通过
以Expection及其子类(除了RuntimExpection)
非受查异常:如果不处理它,它也不会提示你,但是如果你没有按照他的要求来,会在执行的时候抛出异常,中止程序
以RuntimeException和Error为首及其子类

四、异常处理机制

自行处理

try:

监视一段代码,这段代码有可能抛出代码

catch:

如果try语句块的代码抛出了异常,则执行对应的catch语句块

finally:

最终的,一定会执行,就算上面的代码return了,也要执行finally里的语句块。就算上面的代码崩溃了,也要执行finally里的语句块。

​ 适用于:资源释放

抛出去

throw

方法中,抛出一个异常对象

throws

方法上,声明异常类型。告诉调用者,这个方法可能会出现什么类型的异常,让他提前防范

自定义异常

Java只提供了一些基本的异常类,不可能满足所有人的需求。
如果有定制需求,可以自定义异常
步骤:
1.继承自系统中已有的异常类(Expection、RnutimeExpection)
2.自定义带参数的构造方法,(用于接受异常的描述信息)

四、工程手段

  • System.out.println();

    把看不见的过程可视化

  • 单步调试

    debug模式

    1.打断点

    2.进入debug模式

    3.三个按钮

    • step into 一行一行的执行,遇见方法就进入方法

    • step out 跳出当前方法

    • step over 把方法调用当作一条语句、一个整体、直接执行完毕

      适用场景:比较精确的错误范围,小范围内使用

  • 单元测试

大到一个模块,小到一个方法

用于测试某个功能是否能够正常使用

@Test

assertEquals(expected,res);

public class Caculator {
    public static int add(int a, int b){
        return a + b;
    }

    public static int sub(int a, int b){
        return a + b;
    }
}


import org.junit.Test;

import static org.junit.Assert.assertEquals;

public class CaculatorT {
    @Test
    public void testAdd(){
        int res = Caculator.add(3,5);
        assertEquals(8,res);
    }
    @Test
    public void testSub(){
        int res = Caculator.add(3,5);
        assertEquals(2,res);
    }
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不会敲代码的阿明

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

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

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

打赏作者

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

抵扣说明:

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

余额充值