看到很多人写代码 try catch 然后在catch里抛throw new 自定义异常类() 为啥在catch里抛异常呢

hadoop333 2015-07-26 12:08:22
看到很多人写代码 try catch 然后在catch里抛throw new 自定义异常类() 为啥在catch里抛异常呢
...全文
1725 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
名剑_无名 2015-08-13
  • 打赏
  • 举报
回复
在catch里面抛 你可以在抛之前搞点别的...在方法后面抛 就直接抛了.....
job920 2015-08-13
  • 打赏
  • 举报
回复
异常一般都抛啊 别抓
hadoop333 2015-08-07
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/391051525 这个帖子不错
  • 打赏
  • 举报
回复
因为中文的异常很方便观看啊
finemi 2015-07-29
  • 打赏
  • 举报
回复
引用 11 楼 hadoop333 的回复:
[quote=引用 7 楼 finemi 的回复:] 异常转译:严格分层的话,比如dao层的异常传递到service层,而不应该直接再传递给表现层(夸层了,并且直接把dao层数据库相关的异常直接传给表现层不太安全),所以通常都会进行异常转译,即service捕获dao层的异常,再抛出service固有的异常 还有就是纯粹为了将检查异常转为非检查异常
sevice层捕获dao的异常 然后在catch里 throw抛异常 那action层需要捕获service的异常 然后在catch里throw抛异常吗[/quote] 看需求,一般不需要
whzxcvbnm 2015-07-29
  • 打赏
  • 举报
回复
我的理解:通常catch里只会对异常做一些处理,这样调用者就不会知道发生异常了。而直接throws一个异常(在方法名后面)可以让调用者知道这个异常,但是你没法对这个异常做一些处理。如果你既想让调用者知道有异常,同时又想先对这个异常做些处理,那么就需要在catch里做处理然后重新抛异常
落落叶叶无声 2015-07-28
  • 打赏
  • 举报
回复
引用 5 楼 hadoop333 的回复:
引用 4 楼 u012557814 的回复:
在处理事务时可能会有这种写法。
好像只能抛运行时异常 抛普通异常事务不起作用的
可以配置其他异常,令事务回滚,当然你也可以自定义异常,继承自RuntimeException不久行了
jsdf2008 2015-07-28
  • 打赏
  • 举报
回复
异常拦截器统一处理
job920 2015-07-28
  • 打赏
  • 举报
回复
继续抛 给虚拟机处理啊
hadoop333 2015-07-28
  • 打赏
  • 举报
回复
引用 7 楼 finemi 的回复:
异常转译:严格分层的话,比如dao层的异常传递到service层,而不应该直接再传递给表现层(夸层了,并且直接把dao层数据库相关的异常直接传给表现层不太安全),所以通常都会进行异常转译,即service捕获dao层的异常,再抛出service固有的异常 还有就是纯粹为了将检查异常转为非检查异常
sevice层捕获dao的异常 然后在catch里 throw抛异常 那action层需要捕获service的异常 然后在catch里throw抛异常吗
dcs4569 2015-07-28
  • 打赏
  • 举报
回复
一般抛异常,出现异常不管三七二十一,就是将异常打印在控制台上,一堆英文难找,看不清晰。 try的时候呢,有可能会出出现异常,假设你写的代码真的跑出了异常,在try的时候就抓住了,catch(EXception e)这里有个e就是异常,他被抓住之后你可以对这个异常进行处理比如打印一段日志(哈哈!!小e你被抓主喽)然后再讲异常里的消息打印,或者你就知打印你喜欢的东东,反正任你处置,这样当你写的程序出错时就会打印日志或者干你叫他干的事情,而不是不管三七二十一,就是将异常打印在控制台上,日子是你自己写的,这个异常你一下就能找到
迷林 2015-07-28
  • 打赏
  • 举报
回复
catch会对异常做一些必要的处理 然后还有些处理不了 就向外抛 意思是谁爱管谁管去(调用该方法的方法来出来此外抛/上抛异常) 这就是我们俗称的抛异常
hadoop333 2015-07-27
  • 打赏
  • 举报
回复
引用 6 楼 u012050427 的回复:
为了某些逻辑\个性化或者统一处理的需要
啥意
引用 7 楼 finemi 的回复:
异常转译:严格分层的话,比如dao层的异常传递到service层,而不应该直接再传递给表现层(夸层了,并且直接把dao层数据库相关的异常直接传给表现层不太安全),所以通常都会进行异常转译,即service捕获dao层的异常,再抛出service固有的异常 还有就是纯粹为了将检查异常转为非检查异常
也就是说在servie层捕获dao层的异常 然后在catch里throw 在service层中产生的异常 如果在action层 也要在catch里throw 在service层产生的异常吗
finemi 2015-07-27
  • 打赏
  • 举报
回复
异常转译:严格分层的话,比如dao层的异常传递到service层,而不应该直接再传递给表现层(夸层了,并且直接把dao层数据库相关的异常直接传给表现层不太安全),所以通常都会进行异常转译,即service捕获dao层的异常,再抛出service固有的异常 还有就是纯粹为了将检查异常转为非检查异常
王良辰 2015-07-27
  • 打赏
  • 举报
回复
为了某些逻辑\个性化或者统一处理的需要
hadoop333 2015-07-27
  • 打赏
  • 举报
回复
引用 4 楼 u012557814 的回复:
在处理事务时可能会有这种写法。
好像只能抛运行时异常 抛普通异常事务不起作用的
落落叶叶无声 2015-07-27
  • 打赏
  • 举报
回复
在处理事务时可能会有这种写法。
hadoop333 2015-07-27
  • 打赏
  • 举报
回复
引用 1 楼 qq118194716 的回复:
catch会对异常做一些必要的处理 然后还有些处理不了 就向外抛 意思是谁爱管谁管去(调用该方法的方法来出来此外抛/上抛异常)
那往后抛一般总该有一层处理吧 Action层处理吗 如果没人处理 难道要抛给虚拟机吗
ArayChou 2015-07-27
  • 打赏
  • 举报
回复
引用 5 楼 hadoop333 的回复:
引用 4 楼 u012557814 的回复:
在处理事务时可能会有这种写法。
好像只能抛运行时异常 抛普通异常事务不起作用的
这个是可以配置的,不管默认是RuntimeException回滚事物
jsdf2008 2015-07-27
  • 打赏
  • 举报
回复
抛吧 抛给虚拟机
加载更多回复(2)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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