锁定老帖子 主题:一个疯狂的乱用异常的想法
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (8)
|
|
---|---|
作者 | 正文 |
发表时间:2011-12-01
但是一个方法却可以抛出任意多种的异常 由此我联想到,这不就等于一个方法的返回值可以是任意多种类型? 不知道基于这点,能不能搞出什么疯狂的用法 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-12-01
最后修改:2011-12-03
想“返回”不同类型值,没问题啊,传个object类型的list进去(ref/out),传出来之后按规则转成想要的类型,想要同时得到几个不同类型的“返回值”都可以实现
|
|
返回顶楼 | |
发表时间:2011-12-01
楼上的正确呀,楼主是不是想太远了,快回来吧。
|
|
返回顶楼 | |
发表时间:2011-12-01
1.虽然抛出的异常让当前程序终止,并出栈,但是调用出并不会把他作为返回值入栈
2.返回任意类型在面向对象中不就是Object |
|
返回顶楼 | |
发表时间:2011-12-01
3.异常本身也是一种对象,也是特定类型,有这继承的层次结构,你怎么返回任意多种类型
|
|
返回顶楼 | |
发表时间:2011-12-01
2楼同学思想很对。
方法是可以抛出不同类型异常。 异常是类对象。你自己写也是类对象。 定义为返回一个 Object类型,你也可以返回任意对象。 返回Map, List,更可以随意了。Map,List它们也是类和对象。 关键还是这个问题: 为什么要设计这样一个方法?合理么。 |
|
返回顶楼 | |
发表时间:2011-12-01
返回Object不就可以了吗???
|
|
返回顶楼 | |
发表时间:2011-12-01
楼主是不是蓝翔出来的
|
|
返回顶楼 | |
发表时间:2011-12-01
最后修改:2011-12-01
gtssgtss 写道 首先我们知道,一个方法的返回值只能是某一种类型
但是一个方法却可以抛出任意多种的异常 由此我联想到,这不就等于一个方法的返回值可以是任意多种类型? 不知道基于这点,能不能搞出什么疯狂的用法 用户登陆的标准作法boolean isok = usersvc.login(username,password); 用户被锁定状态,是一种对应的异常返回的。 这样设计可以使此接口无缝扩展多种不能登陆的条件。 2006年robbin有过是否需要用异常来控制流程相关贴子有此类的很多讨论 PS:函数指针这东西好用,用好人不多。 所以我建议尽量不要使用这种方式设计架构 作作hack手段还可以容忍, 读懂意大利面条似的跳转路径不是人类的能力范围。 foohsinglong 写道 返回Object不就可以了吗???
华为有一个项目所有的svc函数都返回同一个object 这个object是所有Entity的父类, 这里保留了一个异常信息,一个异常代码。 |
|
返回顶楼 | |
发表时间:2011-12-01
用异常?
用反射吧……更灵活 反正都是个慢 |
|
返回顶楼 | |