【笔记】对自定义异常的理解(Java)
原本,原有的异常是非手动地、自动地抛出的。
了解自定义异常时,发现其信息只是:
- 继承了谁,即它自己算哪种异常;
- 它的信息,比如一个id,这个貌似还是可选的;
- 它是可被传入信息的
没有遗漏的话,就这仨了。
此时,困惑便出现了:
异常最关键的就在于它要表示某种错误或者说某类错误,所以异常类里面至少要含有「什么时候算是这种异常该被丢出的时候」这种程度的信息吧?
java里的异常居然没有????
那计算机怎么知道,关于这个新定义的异常的,「它是哪种异常」的信息呢?
我明明都没告诉它啊????
这个关键的信息在代码中其实也算是有体现的,不过貌似只有具体的体现:
即,在throw
的时候,这个信息才被告诉给了计算机。
如果要一口气设定了「都应该在啥时候扔某个自订的异常」的话,这意味着jvm完全可以自动抛出。
手动抛出的存在,似乎,让抽象地告诉计算机抛出异常的规则这种工作,变得不必要了——可能是因为已有的自动抛出规则都设置得够好了?……
总之,我现在可以确定的是,如果自定义的异常中并未在类中对计算机给出关于「应该以怎样的规则决定啥啥啥是否算得上这类异常」的信息,这一信息可以在使用throw
时被具体地告知给计算机:只在有throw
时,才抛出该自定义异常。
——即,自动抛出异常的规则是不会理会用户自定义的异常的。
(这真是遗憾,没法搞出一些可怕的事情了,比如把一些不好的命名习惯给算作编译时异常然后进一步升级编译器对程序员的规范……其实这个想法类似于是想要修改编译器规则了,当然,只能做到往越发严格修改。
——我原本理解的「自定义异常」就是要能办得到这种事情的/_>\。。。。)
上一篇: Java中面向对象三大特性之——继承
下一篇: 恩将仇报,奸臣史弥远到底都做了哪些恶事?
推荐阅读
-
对JQuery中Ajax应用与jQuery插件的理解与笔记
-
读书笔记:深入理解java虚拟机(二)创建对象的时候需要访问哪几块内存
-
读书笔记:深入理解java虚拟机(一)虚拟机的运行时的数据区域
-
C++标准库第二版笔记 3 和异常的理解 1
-
Java连载65-自定义手动抛出异常、子类的异常范围、数组初探
-
【笔记】对自定义异常的理解(Java)
-
夯实Java基础系列10:深入理解Java中的异常体系
-
C++工作笔记-对二级指针的进一步理解(获取调用者的地址)
-
C++工作笔记-对友元函数的进一步理解
-
对继承与多态、成员变量的隐藏和方法重写、super关键字、final关键字、对象的上转型对象、抽象类的学习理解(java)