首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新地理坐标

更新地理坐标
EN

Code Review用户
提问于 2015-05-05 15:14:35
回答 1查看 132关注 0票数 3

当试图将字符串地理坐标转换为double时,在活动环境中检测到一个错误。

当前的文化(hu-HU)用逗号代替小数的点,这在解析Double.Parse(47,545874)时产生了一个异常,这就是为什么我要使用CultureInfo.InvariantCulture,以及将转换包装在try/catch语句中的原因。

是否有更好的方法来处理这些异常?

代码语言:javascript
复制
public void UpdateJobGeoCoordinates(Job job)
{
    var address = _kernel.GetKernel();

    var gpsCoordinate = _locator.GetGpsCoordinates(address);

    try
    {
        job.Lat = Double.Parse(gpsCoordinate.Item1, CultureInfo.InvariantCulture);
        job.Lng = Double.Parse(gpsCoordinate.Item2, CultureInfo.InvariantCulture);
    }
    catch (FormatException)
    {
        ResetCoordinates(job);
        Logger.Warn("Geo location issue for Job [{0}] , Format error when convert '{1}', '{2}' to a Double.", job.ERPServiceOrderId, gpsCoordinate.Item1, gpsCoordinate.Item2);
    }
    catch (OverflowException)
    {
        ResetCoordinates(job);
        Logger.Warn("Geo location issue for Job [{0}] , Overflow when convert '{1}', '{2}' to a Double.", job.ERPServiceOrderId, gpsCoordinate.Item1, gpsCoordinate.Item2);
    }
    catch (Exception ex)
    {
        ResetCoordinates(job);
        Logger.Warn("Geo location issue for Job [{0}] , Exception message: {1}", job.ERPServiceOrderId, ex.Message);
    }
}
EN

回答 1

Code Review用户

回答已采纳

发布于 2015-05-08 09:51:23

我觉得你把这件事搞得太复杂了。在我看来,你关心的是你是否成功,然后想要把尽可能多的信息传递给那些能够找出问题所在的人。try块中仅有的两行是解析成双行,所以只需捕获Exception并增强所包含的信息。

代码语言:javascript
复制
public void UpdateJobGeoCoordinates(Job job)
{
    var address = _kernel.GetKernel();

    var gpsCoordinate = _locator.GetGpsCoordinates(address);

    try
    {
        job.Lat = Double.Parse(gpsCoordinate.Item1, CultureInfo.InvariantCulture);
        job.Lng = Double.Parse(gpsCoordinate.Item2, CultureInfo.InvariantCulture);
    }
    catch (Exception ex)
    {
        ResetCoordinates(job);
        Logger.Warn("Geo location issue for Job [{0}] , Exception details: {1}", job.ERPServiceOrderId, ex);
    }
}

请注意,Exception.ToString()比消息更有用。

您将得到异常的类型、消息和堆栈跟踪。

票数 1
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/88872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档