异常处理
异常处理方面的知识,下面是学习中记的笔记:
try尝试捕获异常
catch对捕获的异常进行处理
多个catch要注意的问题:
一、顺序问题,先小后大,也就是先子类后父类。因为当异常出现的时候异常处理系统会就近寻找匹配的异常处理程序,而子类继承父类,针对与父类的异常处理程序对于子类也是适用的。如果顺序写错编译器在编译的时候也是不会通过的,会直接报错。
finally最终执行的代码
Java中的异常抛出
throw 将产生的异常抛出(动作),写在方法里面
throws声明将要抛出何种类型的异常(声明)
public void 方法名(参数列表) throws 异常列表{
//调用会抛出异常的方法或者:throw new Exception();
}
调用throws声明的方法需要对抛出的异常进行处理,如果不进行处理则应该将异常继续向上抛出。例如
package Zhang; public class ExceptionTest { public void divie(int one,int two) throws Exception{ if(two==0){ throw new Exception("两个数相除,除数不能为0"); }else{ System.out.println("两数相除的结果为:"+(one/two)); } } public static void main(String[] args) throws Exception{ new ExceptionTest().divie(6,0); } }
输出:Exception in thread "main" java.lang.Exception: 两个数相除,除数不能为0
at Zhang.ExceptionTest.divie(ExceptionTest.java:6)
at Zhang.ExceptionTest.main(ExceptionTest.java:13)
以上主函数并没有对可能的异常进行处理,而是继续将异常向上抛出。如果主函数需要对异常进行处理则应该按一下的进行处理
public static void main(String[] args){ try{ new ExceptionTest().divie(6,0); } catch(Exception e){ System.out.println(e.getMessage()); } }
输出:两个数相除,除数不能为0
RandomAccessFile
异常的处理先到此告一个段落,明天继续学习文件操作方面的知识。通过慕课网上下载的视频。今天突然很想学习网络方面的知识,还是抓紧时间把计划的东西学完。
明天要学习Java中的RandomAccessFile类的使用,他是Java提供的对文件内容的访问,既可以读文件,也可以写文件,支持随机访问文件,可以访问文件的任意位置。
Java的文件模型:在硬盘上的文件是byte存储的,是数据的集合
打开文件的两种模式:“rw”(读写) “r”(只读)
RandomAccessFile raf=new RandomAccessFile(file,”rw”);
因为是随机访问,所以他的内部还包含了文件指针,打开文件时指针在开头pointer=0;
写方法:raf.write(int) 只写一个字节(后8位),同时指针指向下一个位置,准备再次写入。
读方法:int b=raf.read() 读一个字节
文件读写完成以后一定要关闭(Oracle官方说明)否则会产生意想不到的错误。
以上是提前对明天要学习的内容做的预习,具体的编码要明天的*时间来完成。
一些想法:节奏
写 到这里的心里感觉总想放松,但又不知道做些什么来放松,同时也觉的时间的珍贵。写到这里我又想到我当下一个很现实的理想:我想有一个安静的小屋,时间是晚 上,我的精力比较充沛,一盏灯,一个流畅电脑,一个好用的操作系统,适手的键盘。还有恰到好处的座椅,常用的书籍摆在面前,网速又是相当的好,旁边还有一 个小床,天气不冷也不热。我就坐在椅子上安静的学习,不用为任何事担心,安安心心的深入思考每一个知识点,认真的做自己喜欢的事。现在卧在床上对着电脑打 字很不舒服,也很容易带来疲惫感,觉得有些孤单,又不想被任何事任何人打断,在我打算思考的时候。此刻想起在我刚开始为自己的每天写一些思考总结的时候第 一个问题是时间问题,时间不管怎样,现在通过每天的总结都能慢慢的积累到东西。现在我看到浮现出来的第二个问题,这是在学习中遇到的,那就是如何面对一个复杂庞大的知识体系。不说快速掌握,那会带来浮躁的心里,导致欲速则不达的结果出现。现在最想在这些复杂庞大的知识面前做出有节奏感的学习。就像沉醉在节奏感十足的曲子之中一样。这个问题值得近期解决。
2016-10-09