我不理解有关何时抛出异常或返回错误码/ boolean
结果的最佳实践。哪些方法应该抛出异常,哪些应该返回一个布尔值
具体来说,我有这种情况:有一个线程每30秒轮询一个设备(检索其状态)。
如果设备无法访问,应用程序不能停止,因为它不需要能够与所提及的设备进行通信以执行它所做的所有其他操作。
所以,一般情况下,线程的代码是这样的:
while(true)
{
device.connect();
string st = device.getStatus();
updateStatus(st);
device.disconnect();
sleep(30);
}
目前,如果设备不在线的connect()
方法抛出异常。
我认为,在这种情况下,让connect()
方法返回一个布尔结果以报告设备是否可到达是一种更好的做法,但我不确定。
上面是这样的:
while(true)
{
if(device.connect())
{
string st = device.getStatus();
device.disconnect();
updateStatus(st);
}
sleep(30);
}
其实,当应用程序投入生产,该装置“应该”永远在线,这让我认为最好的办法是个例外。
另一方面,应用程序可以保持执行完美,无需与设备通信。它没有连接的唯一后果是与其关联的功能性被禁用。这就是我认为boolean
返回值更好的原因。
如果设备没有连接,我将有一个线程每30秒抛出一个异常。 即使有例外情况发生,在软件工程良好实践方面这是否可以接受?
可能的重复:https://stackoverflow.com/questions/253314/exceptions-or-error-codes – Fuhrmanator