我有一个解析货币字符串的方法(例如"€4.00"或" $ 14.50"),但有时会出现解析错误,并抛出{{ 1}}。
我想要做的是将无法解析的字符串(抛出异常)发送到数据库。
FormatException
有可能吗?或者我应该使用某种黑客?
提前谢谢。
答案 0 :(得分:3)
正如BugFinder所说,你可以使用TryParse:
double parsedNumber;
var result = Double.TryParse(euroNumber, NumberStyles.Currency, CultureInfo.CurrentCulture, out parsedNumber);
if (!result)
{
// send error
}
另一种方法是将字符串移到try块的范围之外:
string euroNumber = "€4.00";
try
{
// Will throw a FormatException
double parsedNumber = Double.Parse(euroNumber, NumberStyles.Currency);
}
catch (FormatException ex)
{
// Have access to euroNumber here now
// [Omitted] Sending to server logic
}