暑假自学(39)

今天在想要对复数进行加法运算时发现java没有运算符重载。这就意味着在复数运算或者坐标运算这种需要进行类和类之间的运算时,还得再定义方法返回过来结果再用。。。

很麻烦,目前没有找到解决方法,不太明白为什么要取消运算符重载,只在String上保留了一下。

除此之外学习了java的异常处理,感觉麻烦的地方在于异常处理的名字,目前见到的异常还是太少了。

以下是笔记:

异常处理
异常事件分为两类:error 和 exception
error:java虚拟机无法解决的问题,只能通过改代码修改
exception:其他因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行解决
体系结构:
java.lang.Throwable
java.lang.Error:一般不编写针对性的代码进行处理
java.lang.Exception:可以进行异常的处理
编译时异常(check)
IOException
ClassNotFoundException
运行时异常(unchecked)
NullPointerException 空指针
ArrayIndexOutOfBoundsException 数组角标越界
编译时异常处理方式:
1.try-catch-finally
2.throws + 异常类型
异常的处理:
抓抛模型
抛:
程序在正常执行的过程中,一旦出现异常,就会在异常代码处生成一个对应异常类的对象
并将此对象抛出。
一旦抛出对象以后,其后的代码不再执行。
抓:
1.try-catch-finally
try{
//可能出现错误的代码
}catch(异常类型1 变量名1){
处理异常的方式
}catch(异常处理2 变量名2){
处理异常的方式
}......
finally{
一定会执行的代码
}
说明:
1.finally是可选的
2.使用try将可能出现异常的代码包装起来,在执行过程中,一旦出现异常,就会生成一个对应异常类的对象,根据此对象的类型,去catch中进行匹配
3.一旦try中的异常对象匹配到某一个catch时,就进入catch中进行异常处理,一旦处理完成,就相当于跳出当前的try-catch结构(在没有写finally结构的情况下),继续执行其后的代码
4.如果catch中的异常类型满足子父类关系,则要求子类在父类上面
5.常用的异常处理方式
1.String getMessage()
2.printStackTrace()
6.在try结构中声明的变量,在出了结构后不能再使用

明天学习另一种编译时异常处理方式

原文地址:https://www.cnblogs.com/buxiang-Christina/p/13504299.html