如何让构造函数调用失败?

iamnewone 2007-07-06 02:37:20
我希望如果我的构造函数里捕获了异常,希望调用着构造的实例为null怎么弄?

即:
Account acc = new Account();
if(acc==null)
......

如果Account()捕获了异常,我如何让实例acc==null?

而且我也不想把异常抛出给调用者。
...全文
314 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
primer133 2007-07-06
  • 打赏
  • 举报
回复
支持 zephyr_cc
JIEK_ONE 2007-07-06
  • 打赏
  • 举报
回复
LZ你能把你的意思说明白点吗?不太清楚你要做什么?
weihthchk 2007-07-06
  • 打赏
  • 举报
回复
楼上正解!

看过静态工厂方法的介绍后,楼主就知道这个东西有你需要的这个用处了。
iamnewone 2007-07-06
  • 打赏
  • 举报
回复
zephyr_cc()
JIEK_ONE(weiwei)
两位提供的方法都是在Account a = null情况下的,如果不这么写就回报错。
zephyr_cc 2007-07-06
  • 打赏
  • 举报
回复
class T {
void f() {}
}

public class Account {
private T t;

private Account() {
t.f();
}

public static Account access() {
Account a = null;
try {
a = new Account();
} catch(Exception e) { }
return a;
}

public static void main(String[] args) {
Account acc = Account.access();
System.out.println(acc);
}
}

你试试这个
zhangjie7823 2007-07-06
  • 打赏
  • 举报
回复
为什么在构造函数里捕获呢?你可以在Account acc = new Account();
之前就捕获异常,然后acc = null;不可以么?
JIEK_ONE 2007-07-06
  • 打赏
  • 举报
回复

public class Tet {
public Tet(String s) throws Exception{
System.out.println("构造开始");
throw new Exception("构造出现异常");
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Tet t = null;
try{
t = new Tet("TTT");
//System.out.println("1");
}catch(Exception e){
if(t == null)
System.out.println("构造出现异常:t is null!");
}
}

}
dracularking 2007-07-06
  • 打赏
  • 举报
回复
我试验过了 似乎光有try catch 是不足以令新创建的类句柄为null的
一旦获得有捕获异常的信息,就主动设置acc为null
yangcaibin 2007-07-06
  • 打赏
  • 举报
回复
用try catch啦catch里面什么都不写

62,623

社区成员

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

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