Day10基础不牢地动山摇?Java基础
Day10基础不牢地动山摇?Java基础,博智网带你了解详细信息 。
目录
- 1、异常的捕获与处理
- 1.1 处理异常
- 1.2 异常处理的流程
- 1.3 throw关键字
- 1.4 异常处理模型
- 1.5 RuntimeException
- 1.6 断言:assert
- 1.7 自定义异常
- 2、链表
- 2.1 链表基本的结构
- 2.2 链表实现结构说明
- 2.3 增加链表数据—public void add(数据)
- 2.4 增加多个数据—public void addAll(数据数组)
- 2.5 统计数据个数—public int size()
- 2.6 链表数据转换为对象数组—public Object[] toArray()
- 2.7 链表查询数据—public boolean contains(查找对象)
- 2.8 根据索引取得数据—public Object get(int index)
- 2.9 修改指定索引数据—public void set(int index,Object newData)
- 2.10 删除数据—public void remove(数据)
- Link链表类模板
- 综合案例
1、异常的捕获与处理异常时导致程序中断执行的一种指令流 。程序出现异常没用合理处理,就会导致程序终止执行 。
观察没有异常产生的程序
【Day10基础不牢地动山摇?Java基础】public class TestDemo1{ public static void main(String args[]){System.out.println("1、除法程序开始");int result =10/2;System.out.println("2、除法程序结果:"+result);System.out.println("3、除法程序结束"); }}/*1、除法程序开始2、除法程序结果:53、除法程序结束*/
产生异常的程序
public class YiChang{ public static void main(String args[]){System.out.println("1,除法程序开始");int result =10/0;//会出现错误System.out.println("2,除法程序结果:"+result);System.out.println("3,除法程序结束"); }}/*Exception in thread "main" java.lang.ArithmeticException: / by zeroat YiChang.main(YiChang.java:5)*/
这个时候程序出现了错误,那么出现错误之后程序不执行了,而是直接进行了错误信息的输出,并且直接结束了程序,但是,出现了错误,应该去处理才对,但是现在没有处理 。
1.1 处理异常现在,如果希望程序出现了异常之后,程序依然可以正常的完成的话,那么就可以使用如下的格式进行异常的处理;
try{可能出现异常的语句}[catch(异常类型 异常对象){处理异常;}catch(异常类型 异常对象){处理异常;}…][finally{异常统一出口不管是否出现异常,都执行此代码;}]
使用该操作进行异常的处理
public class TestDemo1{ public static void main(String args[]){System.out.println("1、除法程序开始");try{int result =10/0;System.out.println("2、除法程序结果:"+result);}catch(ArithmeticException e){System.out.println("异常被正确的处理了");}System.out.println("3、除法程序结束"); }}/*1、除法程序开始异常被正确的处理了3、除法程序结束*/
可以发现加入了异常处理之后,程序之中即使有了异常,程序也可以正常执行完毕,但是现在发现,异常处理时的错误输出信息和之前相比,出错的信息不明确了,那么为了让错误的信息更加完整,一般而言,都会调用printStackTrace()方法进行异常信息的打印
这个方法(printStackTrace)打印的异常信息是最完整的:
try{ int x = 10/0;//异常 System.out.println("2,除法程序结果:"+x);}catch(ArithmeticException e){ e.printStackTrace();}
try catch finallly 操作
public class TestDemo1{ public static void main(String args[]){System.out.println("1,除法程序开始");try{int x = 10/0;//异常System.out.println("2,除法程序结果:"+x);}catch(ArithmeticException e){e.printStackTrace();}finally{System.out.println("不管是否异常都会执行");}System.out.println("3,除法程序结束"); }}
但是,对于之前的程序现在又有了问题:现在执行数学计算的两个参数,都是由程序默认提供,那么如果说现在两个计算的参数通过初始化参数传递呢?
public class TestDemo2{ public static void main(String args[]){System.out.println("1,除法程序开始");try{int x = Integer.parseInt(args[0]); //接收参数int y = Integer.parseInt(args[1]);//接收参数int result = x/y;System.out.println("2,除法程序结果:"+result);}catch(ArithmeticException e){e.printStackTrace();}finally{System.out.println("不管是否异常都会执行");}System.out.println("3,除法程序结束"); }}
时候发现,数据由外部传送,那么在这种情况下,就有可能出现一下几类问题:
执行时不输入参数,ArrayIndexOutOfBoundsException,未处理 。
输入的参数不是数字,NumberFormatException,未处理 。
被除数为0,ArithmeticException,已处理 。
推荐阅读
- 花边的常用材料有哪些
- 养羊成本 养羊需要什么基础条件?
- 美术技法 美术基础理论知识
- 三基是指哪三基
- 原神武器池多少发保底
- lo裙有哪些基础知识-生活百科知识
- 乳液和面霜的区别
- 地台电视柜怎么做的
- 面霜什么时候用
- 基础补水和深层补水区别
