东忠实训第21天

 

今天主要讲了JAVA的异常处理机制,以前只知道在代码外面加try{} catch{}可以捕捉一些程序执行时的Exception,但就是不知道为什么要加,加了到底有什么作用,通过今天的讲解终于有点头绪了。只是最后由于时间原因老师讲得有些仓促,还有好些没明白,有知道的大虾们帮我补充下。万分感谢!

1、 Exception的定义:异常又称为例外,是特殊的运行错误对象。

(最讨厌这些官方的定义啦,很多所谓的定义都是要在后面懂了回过头来才看得明白。)

所以我自己把Exception理解为程序运行时一些不确定情况所导致程序发生异常。

例如老师举的例子:程序要在另一台电脑的D盘下新建一个.txt文件夹,但程序在运行时有可能发生两台电脑没有连接,或是那台电脑根本没D盘等一些意外情况,这时程序就会发生异常,如果程序里没有异常处理机制,电脑执行这段程序就有可能发生崩溃或死机,这是我们不想看到的所以良好的程序就要做好异常处理。

2、Exception类和Error类都是Throwable类的子类。(还不清楚Error类)

3、一些常规该熟记的异常类:

ClassNotFoundException:无法找到指定的类时发生该异常。

FileNotFoundException:访问一个不存在的文件时发生该异常。

IOException:通常的I/O错误。

ArithmeticException:

如果除数为0,则发生该异常。例:int i = 12 / 0;

NullPointerException:

对象未实例化时访问该对象则发生该异常。

例:int[] a = null; a.toString();

ArrayIndexOutOfBoundsException:

数组下标越界异常。例:int[] a = { 1 }; a[1] = 2;

NumberFormatException:

数字格式化异常。例:Integer.parseInt("abc");

4、异常的发生有两种情况:

1、系统自动抛出异常。一般是由于编程错误或者数据错误而导致的异常。

2、显式使用throw语句抛出异常。

程序遇到关键字throw时抛出异常并将控制转移到相关的“catch”块中处理,如果产生异常的方法中没有cathc语句则异常继续向外抛即转向调用该方法的上一级方法中的catch,若始终没有“catch”块来处理该异常则由运行系统(JTM)处理

 

5、非检查型异常和检查型异常: (这部分老师讲的不是很清楚现在还没搞明白,晚上会去再学习)

1、所有继承自RuntimeException的异常称为非检查型异常。(这定义就是句屁话,啥都没将清楚)

编译器对非检查型异常不做编译检查。(不明白)

 

2、非检查型异常以外的异常称为检查型异常。

方法中可能抛出的检查型异常必须在方法定义部分使用throws语句进行声明。

对于任何方法,如果它调用的方法会抛出一个检查型异常,那么调用者就必须捕获该异常或者也在方法定义部分使用throws语句声明会抛出该类型的异常。

如果未捕获该异常也未使用throws声明会发生编译错误。

//不明白,不明白,不明白啊~~~~

 

3、void printStackTrace():放在catch语句中用来打印出异常发生的路径,以及引起异常的方法调用的序列

 

              4、自定义异常类的语法:

class 类名 extends 异常类名 {

           // 成员变量、成员方法

       }

 

6、最后还有个finally这个比较简单:就是无论程序有否发生异常都需执行的语句。(以前也搞不清楚干嘛要加个finally)

举个例子:程序连接数据库后 若再执行断开数据库语句之前发生了异常,断开数据库的语句就不会执行啦,数据库就一直连接着就很浪费资源,所以我们可以吧关闭数据库的语句写在finally语句中。

还有些tyr catca语句的嵌套,都比较简单就不作笔记啦。

OVER 今天就这些啦。

 

题外话:程序课貌似自己还跟得上,可是日语课真的落下很多节啦,好几课单词没背啦,真心不喜欢背单词啊~怎么背也背不住,以学英语也这样。谁有好的背单词方法可以留言教教小弟啊!(痛哭流涕啊~~~)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值