我是个刚刚学java没多久的人我想问下各位兄弟java异常类有那些特点
既然我们都把异常都已经列出来了为什么还需要用异常类呢??
我想不明白到底这样子用有什么好处,希望各位有经验的人的説下
小弟十分感激虽然分不是很多!在次感谢下!
既然我们都把异常都已经列出来了为什么还需要用异常类呢??
我想不明白到底这样子用有什么好处,希望各位有经验的人的説下
小弟十分感激虽然分不是很多!在次感谢下!
解决方案 »
- 问个新人、问题for循环求20!+19!+。。。。。+1!
- jfreechart 图例与标题问题
- 有没有办法用代码模拟用户鼠标点击事件?
- 棘手问题,Java中大量数据处理
- 请教一个问题
- java 按下回车跳转到下一个TextField
- Socket client = server_socket.accept();如何获得本地端口?
- 一个Datagram Socket 能不能同时和多个目标地址通信?
- 如何解决JAVA中权限问题(在线等待)
- 请问地图网站的一种效果的java实现思想,就是当鼠标点击一个点,这个点的信息就在图上写出
- jbuilder中怎么样设置JDK版本
- 我已经放弃了,哪位大虾,推荐一个 简体中文的 JAVA 开源 的 BBS
2.Java是纯面向对象语言,他的所有东西都可以说是对象,当然异常也不例外。
3.lz什么叫做可以把所有异常都列出来?还有自己定义的异常啊。
4.处理异常可以使程序更健壮,用异常类,便于管理异常,提高开发效率。随便说点,不足之处还请海涵。
1楼的能不能説的更具体点
我指的是你写一个异常类不是代表一个异常吗?
比如説除0 啊 数组越界啊 这个写成异常和直接if有什么区别
写异常有什么特点!谢谢
我的意思是你如果抛出个除0的异常
这个和用if(i==0)这样子
然后用了异常能有什么特点?
然后就是定义一个子异常的时候不就代表你已经知道了这里将产生一个异常那我也直接可以用if语句来完成对改错误的避免啊?
不知道现在説明白没有?
各位见谅
这种可能性太小!更多的情况是,你是调用了别人写的类里的方法,也就是说,你的代码里无法
实现去判断网线是否断掉,这些判断需要底层的支持,而底层代码是别人写好的,你无法修改,
这时候用if还能解决么?问题2:反过来,如果让你去写一个网络读数据的类,在你的方法检查到了网络断掉的事实,你如何通知调用
这个方法的函数呢?你可以用返回值的不同情况来告诉调用者不同的出错情况,当在你的方法里又调用了
其他的方法,那你的返回值是不是要罗列出这些方法的出错码呢?如果这样设计程序,岂不是累死了?异常有个很重要的特点就是“冒泡”,从异常发生的那一刻起,它就开始在调用堆栈里冒泡,只要没人抓它,
它就一直往上冒。这样,对于前面说的问题1和2,就都可以解决了。
对于问题1,不用if了,只要抓网络断掉的异常就行。对于问题2,不用返回值表示出错状态,出错了扔个异常,
调用者就收到了,对于你的方法里调用了其他方法产生了异常,你不抓它,它就自动冒泡给调用者了。
7楼 那写个断网异常发生时总要提醒用户网络断了或者其他用户能看的懂的消息吧!
这样子和if不是差不多。最好那个能给我搜索点这方面的东西来越具体越好
当然如果你能把这个讲出来那就更好了o(∩_∩)o...
但是如果都用exception来抛出异常这样子就不知道具体什么东西出错了?
这样子和if不是差不多
------
1、异常在创建时本来就可以带有信息的,比如 new Exception("网络断了!"),和if没关系。
2、如何把异常转化为用户可读信息是另一个层面的问题,比如还涉及到国际化等等问题。
但这个和异常的作用本身没关系。
假如,你用1/0这个时候就会抛出数学异常,你这个时候就大概能找到是哪里出了问题了。如果没有这个异常
的存在,那么你只知道程序出问题了,但是却很难找到是哪的问题,在加入NullPointerException,见到这个你就会知道一个对象没被初始化就用了
这样便于程序调试。
但异常并不是为了调试而产生的,异常的目的就是错误处理。就像楼主说的,利用分支(if)来进行错误处理是最常见的方式,但问题是每个出错都必须立即
写一段if()来进行处理,这样,错误处理就散落在代码的各个角落里。当代码量很大,调用关系复杂时,
维护就很不方便方便,从而希望能把错误处理都集中起来,放在一段代码里统一处理,就出现了异常的需求。
次要原因:1.当程序发生异常的时候,用异常处理可以使程序继续运行,不至于中断.
2.大部分用户都是呆头呆脑的,有时候因为它们的原因你的程序不能正常运行了,这时你应该用到异常来告诉用户到底出了什么事并安全的退出程序.