Я разрабатываю оболочку для библиотеки сторонних функций, которая взаимодействует с некоторым специальным оборудованием. Поэтому в основном я хочу инкапсулировать функции dll (bool Connect()
, void Disconnect()
и т.д.) В MyHardwareObject с помощью методов connect и disconnect.
Функция Connect из dll может вызывать определенные исключения, например, когда аппаратное обеспечение отсутствует. Для приложения информация о том, почему метод подключения не работает, считается несущественным, поэтому дополнительная информация, содержащаяся в исключении, не нужна.
Каков наилучший способ обработки этих исключений, возвращая false
или оставляя исключение необработанным здесь и улавливая его на уровне, который иначе обрабатывал бы тот факт, что метод connect возвратил false
?
bool MyHardwareObject.Connect()
{
try
{
ThirdPartyLibrary.Connect();
}
catch (SomeException)
{
return false;
}
return true;
}
В отличие от
bool MyHardwareObject.Connect()
{
ThirdPartyLibrary.Connect();
return true;
}
(или во втором случае лучше void MyHardwareObject.Connect()
, так как мы либо возвращаем true, либо генерируем исключение?)
Или что еще вы бы сделали? И самое главное: почему?