新手~~关于异常的使用问题

本文讨论了使用简单工厂模式时,对于无效输入返回null还是抛出异常的问题。作者认为应返回null,而同事坚持应抛出异常。这引发了关于程序健壮性和用户体验之间的平衡思考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天写程序,用了一个简单工厂模式,工厂类有一个静态工厂方法,传入一个参数,根据参数生成不同的对象:
[code]
public static GateWayCaller getGateWayCaller(String serviceKey)
{
if("alerting".equals(serviceKey))
{
return new AlertingCaller();
}
else if("report".equals(serviceKey))
{
return new ReportCaller();
}
//...
else
{
return null;
}
}
[/code]
一同事硬说我return null不对,应该抛出一个checked异常,由客户端调用者去处理该异常。

我的想法很简单,既然这是一个生成对象的方法,如果调用者将参数传错导致要生成的对象不存在,就应该返回一个空对象,而不是抛出异常。不然的话所有客户端代码都要处理一个没用的异常!!

搞的好郁闷,最受不了的是老说我什么什么观点是错误的。俺也没有什么太多的编程经验,也不知道该怎么去反驳。我认为没有哪个观点是绝对错误的,只有比较之下哪种做法更好一点?听听大家的意见?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值