【疑惑】JAVA异常处理

feixianxxx 2009-08-03 02:47:10
个人感觉异常处理 挺麻烦 挺难的

不知道各位什么看法 它重要么
你们平时都用么?

谢谢指教

...全文
324 40 打赏 收藏 举报
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
yktd26 2009-08-11
  • 打赏
  • 举报
回复
写的时候嫌烦,维护的时候嫌少
mianfeidog 2009-08-11
  • 打赏
  • 举报
回复
学习。
shengli_liao 2009-08-11
  • 打赏
  • 举报
回复
个人也赞成“异常打破了程序只有唯一返回值规范”的观点,
异常常常使得代码的重构(如构造新的子函数)变得异常啰嗦,
追踪JDK源代码可以发现至少30%的代码在处理异常,
同时每个函数都抛出好几个异常,让人看着有些生厌。
还有人建议大量的自定义异常,如果真的这样,
复杂臃肿还需大量扩展的异常使得代码的可读性不知从何说起。
feixianxxx 2009-08-11
  • 打赏
  • 举报
回复
为什么有时候写程序不抛出异常 他就会语法错误
不是可有可无么
Seven_23 2009-08-07
  • 打赏
  • 举报
回复
其实不用觉得异常很深奥,我个人觉得它查只是JAVA在运行时候的一种行为而已,根据异常找到相应的代码,
查找原因,并根据你的需求来处理就好了。我觉得异常还是挺重要的,在写项目的时候,异常处理的好坏,
对用户的使用有很大的影响。
abc130314 2009-08-07
  • 打赏
  • 举报
回复
熟练之后,程序很健壮,而且结构也非常清晰。
lcb521 2009-08-06
  • 打赏
  • 举报
回复
首先要了解以下异常的含义:
1)检查性异常:java.lang.Exception
    (2)运行期异常:java.lang.RuntimeException
    (3)错误:java.lang.Error
对异常的处理,有一条行之有效的默认规则:向上抛出-----被调用类在运行过程中对遇到的异常一概不作处理,而是直接向上抛出,一直到最上层的调用类,调用类根据应用系统的需求和特定的异常处理规则进行处理,如向控制台输出异常堆栈信息,打印在日志文件中。用一句形象的话来说,就是谁使用,谁(最上层的调用类)处理。
feixianxxx 2009-08-06
  • 打赏
  • 举报
回复
没人了?
feixianxxx 2009-08-05
  • 打赏
  • 举报
回复
可是不知道哪些异常 对一个新手来说 那很困难
chen_yaojing 2009-08-05
  • 打赏
  • 举报
回复
一步一步調試
lendlice222 2009-08-05
  • 打赏
  • 举报
回复
异常处理不用是很不合适的吧

总体来说还是很有用的 有了抓抛 你可以处理修正一些简单的错误 不至于让程序中断

有时候你要把一句话输出到一个文件里 但是这个文件不存在 你就可以通过抓抛出的异常 然后创建出这个文件 然后就能输出了 这样虽然有了异常 但是你的程序一点没有收到影响

有时候可以通过抛出的异常 来实现人机对话

比如你写一个游戏 要求玩家输入一个数字 但是他输入了一个字符 那你在转换这个数字的时候 会抛出个NumberFormat的错误 你就可以在这个catch里写上一句输出语言 System.Out.Println("请输入合法是字");
wanghf_ 2009-08-05
  • 打赏
  • 举报
回复
异常写的好对程序的运行也就很了解了
yhmdeiog 2009-08-05
  • 打赏
  • 举报
回复
最好还是写上,这样出错了,容易找到些
islandrabbit 2009-08-05
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 feixianxxx 的回复:]
up
[/Quote]

http://topic.csdn.net/u/20090805/01/863b40a4-fcda-4cc7-9adb-0d6356969b8a.html?69082
wlm007007007007 2009-08-05
  • 打赏
  • 举报
回复
这个不太懂,但是帮顶一下,期待高手出现,希望楼主能尽快解决难题
feixianxxx 2009-08-04
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 java2000_net 的回复:]
先搞清楚什么是异常,然后再考虑为何要处理异常!
[/Quote]
大大 谈谈你的经验吧 这方面的。。
tnubi 2009-08-04
  • 打赏
  • 举报
回复
我今天坐车回家, 一个人说要下车, 售票员问那个人 :“请问你在哪下 ?”,那个人说:"黄家摆子"! 我

坐在售票员的旁边 我听他小声的重复一遍:后来对司机高喊 :“黄家摆子有下的----黄家摆子 ”


这时让我想起来java异常的问题:

1, 售票员明显不清楚“黄家摆子” 在什么地方(也许他是新来的),

他可以问那个要下车的人“黄家摆子”是什么地方

但是他没问 -- 可问可不问的 我想应该是java中的RuntimeException (可逮可不逮)

2,如果司机知道那是什么地方,车到达是停车就OK了,没什么异常。

如果司机不知道那是什么地方,一定抛异常了,

他会问那个要下车的人"黄家摆子"在哪 ?

这就是java 当中的 Exception (有了异常必须逮住的)

3,如果要下车的人回答了司机的问题 告诉司机就OK了

但是那个要下车人的笑(*^__^*) 嘻嘻……的 说 :“不知

道” !那完蛋了 上来一个精神病 这就是java虚拟机出问

题了 也就是我们说的 Error这 (司机根本处理不了)个时候

我们该找警察叔叔了!!!
  • 打赏
  • 举报
回复
异常在 Java 中是相非常重要的概念必须掌握,否则很难学好。

再说一些,如果抛出异常类是继承自 RuntimeException 的话,即运行期异常时,Java 编译器
不会强行要求进行捕获。

对于运行期异常来说 java.lang.IllegalArgumentException 和 java.lang.IllegalStateException
几乎可以囊括所有的运行期的异常了,呵呵。
  • 打赏
  • 举报
回复
如果写的方法是提供给其他地方调用的话,那么所有的异常最好全部抛出,由调用处来捕获异常,
根据不同的异常采取不同的措施。

比如说,JDBC 连接数据库,在写代码之前应该想到在方法执行时可能会有什么情况产生,比如:

1,JDBC 驱动程序不存在
2,网络未连接,无法与数据库服务器进行连接
3,数据库服务尚未启动,数据库服务端的端口没找到
4,数据库服务器繁忙,导致连接超时
5,在连接时用户名或者是密码错误
6,操作一个不存在的数据表、字段
7,在操作数据表时没有权限

等等之类,在代码中都可能会产生异常。

如果在异常产生时,优秀的代码不会只在 catch 块中写句 e.printStackTrace(); 就完事。
而是会根据不同异常块采取不同的措施。比如说:类没找到,就在异常块中写入信息告诉
调用类没找到;数据库连不上的话,也可以抛出异相应的异常,或者说采用一些应急策略,
类似过两分钟再连接等等之类的。

楼主所称的异常处理很难,不知道是否能举个例子说明一下,我认为这样回复比较有针对性。
feixianxxx 2009-08-04
  • 打赏
  • 举报
回复
up
加载更多回复(20)
大气污染是影响公众健康与生态环境的重要问题,精准的空气质量时空预测与污染源贡献度量化是精准治污的关键支撑。针对现有研究多源融合不充分、时空关联刻画不足、预测与源解析割裂三方面缺陷,本文设计实现了城市空气质量时空预测与污染源贡献度分析系统,融合监测、气象、工业排放与交通四类数据,构建基于时空注意力的LSTM(STAM-LSTM)预测模型与基于正定矩阵因子分解(PMF)的源解析模型,形成数据融合-特征工程-预测-源解析-可视化闭环。 系统实现四类数据时空对齐与融合,构建时序与空间邻域特征,以普通克里金插值生成1km网格浓度场;STAM-LSTM引入时空注意力自适应学习站点间污染传输时变权重,以72小时输入预测未来24小时逐小时PM2.5浓度;PMF识别交通、工业、燃煤、扬尘与二次生成五个源因子,量化各源全年贡献度并分析时空演变。 实验表明:STAM-LSTM预测RMSE 24.6、MAE 17.8、R² 0.88,相对LSTM基线(30.2)提升18.5%;普通克里金插值误差8.9,优于反距离加权(11.4);源解析显示交通源28.4%、工业源23.1%、燃煤源19.6%为主要贡献源,冬季燃煤源升至27.3%、早高峰交通源达34.8%,下风向工业源贡献高出上风向8~12个百分点;减排情景显示交通源减排20%可使年均PM2.5下降5.7%,与源贡献度排序一致。 系统按五模块14组件实现,功能测试16项用例全部通过,为大气污染预警、源管控与减排政策制定提供了决策依据。 【课程报告内容】 摘要 第1章 绪论 第2章 相关技术与理论 第3章 系统需求分析 第4章 系统总体设计 第5章 系统详细设计与实现 第6章 系统测试与分析 第7章 总结与展望 参考文献 附件-实现指南

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧