源于我在利用idea搭建数据库页面后运行时出现的问题。有些方法都抛出了异常,而有些方法却不用抛出异常,有些方法不写 throw Exceptions 却报错、而有些却又不会。另外在刚开始写完第一个页面运行,链接好数据库没有问题,但是当我写第二个页面在运行时出现空指针异常后,第一个页面在运行后也爆出了空指针异常。所以脑子里有很多 “ 艹 ”,一脸难受的我决定挖掘一下这些个异常是什么时候该用?什么时候出现异常?以及我遇到了到底该怎么处理?
异常继承结构示意图
先贴上我遇到的异常bug
这是登录页面的bug
说是连接数据库的工具类报了异常,new出的对象是空的?
空指针 工具类对象空第二个页面的bug,看起来也是空指针
说我创建的panel页面传进去的值是空 两种情况出现第一种,不报空指针的异常,可以正常运行,但是运行出来的页面中什么都没有
第二种,空指针异常
经过两天的研究,终于将空指针异常解决。原因是我在搭建图形化界面的时候选择了这个Custom Create选项自定义组件,
这个功能我还没搞懂,但是选择这个选项后会出现一个方法,这里没有选择MarkDown 语法,所以截图来看,这个方法我无法点进去,这也不是方法重写或者类继承来调用。但是没有这个会报错,有了这个运行起来会报空指针异常。
接下来我又复习了idea的断点调试,在报异常的时候我从两个报错打了两个断点
断点一 断点二 两个变量为空这合理吗?我不李姐阿,这里报出我的Jpanel为空,存储仓库的按钮为空,我不理解。
这个待我去请教别人,再给大家分享。。。
说回正题,为什么需要抛出异常?异常向上抛,难道上面捕获就能解决了?难道不能直接捕获吗?不知道你们有没有遇到这样的疑问?
引自知乎的一段回答:
作者:知乎用户3PsbPL
链接:https://www.zhihu.com/question/26158399/answer/1251143051
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
你不理解抛异常的原因我想是因为你是初学者,初学者写的程序都是些小例子,都是加减乘除算数这种练习基本功的内容,这些例子和实际开发中是相去甚远的,小例子里出错无论你抛不抛控制台都是满地红,会让人感觉抛了也没意义啊。
但是在实际工作中,一个带项目就相当于一个大银行,而方法只是一个大银行里的管一个个小业务的职员,方法可以察觉到问题,但是并不知道怎么处理,比如我在内存中没找到指定的值,小职员知道有问题,但是没有任何人告诉他没有值应该怎么做,那他只能继续干下去,反正我是按照规则来的,你大堂经理(程序员)没说这事怎么处理就和我没关系,结果整个结算系统都崩了,没错就这么一个小问题会可以整个系统的崩溃。
这个时候为了避免这种情况发生,应该培训职员(增加判断和抛异常),如果没有这个该怎样做,如果没有那个该怎样做,这就是你大堂经理写的各种if,这些是经常碰到的情况你就直接告诉职员了,但是总有你大堂经理都碰不到的情况,那你就告诉职员先停下来,别在系统里做操作,先看看是电脑问题还是打印机的问题,等找大堂经理来商量到底怎么整,这就是抛异常的原理。
你自己练习的小Demo仅仅是在家数钱而已,而异常这种东西只能在银行办业务的时候才能很偶尔的遇到,你在家练习数钱肯定是碰不到的。
关于异常的学习分享一个链接
理解到,需要异常就是为了避免犯错的情况下继续犯错,对程序的运行进行及时的反馈。
那么另一方面向上抛出的异常到哪了?怎么解决的呢?一直向上抛出,就不用解决了吗
这也是我想问的这个问题暂时搁置
网友评论