В дополнение к рекомендациям Роба и Марка и исходя из вашего кода выше, я бы предложил еще одну настройку; Я был бы очень удивлен, если бы productAdapter.GetProductName()
не уже вернул String
, и в этом случае вызов ToString () для него совершенно избыточен. Если он действительно уже возвращает String
, тогда весь ваш блок try / catch становится одной строкой:
s_product = productAdapter.GetProductName(product_id) ?? string.Empty;
Кроме того, я думаю, что было бы полезно упомянуть еще кое-что, что уже возвращает String
- Exception.Message
. Поэтому все различные места, где вы вызываете ToString () в вашем коде, также крайне избыточны.
Кроме того, я бы предложил использовать метод экземпляра String.Split()
, а не комбинацию IndexOf
и SubString
:
product_id = tempProduct.Split(" ", 2)[1];
Наконец, решение о том, какого типа Exception
вы поймали, изучив свойство Message
, должно быть полностью последним сценарием. Даже если вам действительно нужно , чтобы поймать NullReferenceException
здесь, вы должны сделать это явно :
catch (NullReferenceException) {
s_product = "";
}
catch (Exception e) {
// Log your invalid ID error condition here
}
P.S .: Я также не совсем уверен, что вообще этот вопрос имеет отношение к MySQL, так как в вашем коде нет никаких свидетельств API БД.