相关疑难解决方法(0)

如何使用SimpleDateFormat以多种格式解析日期

我正在尝试解析文档中出现的一些日期.看起来用户已经以类似但不精确的格式输入这些日期.

以下是格式:

9/09
9/2009
09/2009
9/1/2009
9-1-2009 
Run Code Online (Sandbox Code Playgroud)

尝试解析所有这些问题的最佳方法是什么?这些似乎是最常见的,但我想是什么让我感到高兴的是,如果我有一个"M/yyyy"模式,那么总是会在"MM/yyyy"之前捕获我是否必须设置我的try/catch块嵌套在限制最少的限制性方式?似乎肯定会采取大量代码重复来实现这一目标.

java datetime parsing simpledateformat

49
推荐指数
8
解决办法
8万
查看次数

空抓块

我有时会遇到需要捕获异常的情况,如果它被抛出但从不对它做任何事情.换句话说,可能会发生异常,但如果发生异常则无关紧要.

我最近阅读了这篇关于类似内容的文章:http://c2.com/cgi/wiki?EmptyCatchClause

这个人谈论的评论如何

// should never occur 
Run Code Online (Sandbox Code Playgroud)

是代码气味,不应该出现在代码中.然后他们去解释评论如何

// don't care if it happens
Run Code Online (Sandbox Code Playgroud)

完全不同,我自己遇到这样的情况.例如,在发送电子邮件时,我会执行与此类似的操作:

var addressCollection = new MailAddressCollection();
foreach (string address in addresses)
{
    try
    {
        addressCollection.Add(address);
    }
    catch (Exception)
    {
        // Do nothing - if an invalid email occurs continue and try to add the rest
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,您可能认为这样做是个坏主意,因为您希望返回给用户并解释无法将一条或多条消息发送给收件人.但是,如果它只是一个CC地址怎么办?这不太重要,即使其中一个地址无效(可能只是一个错字),您仍然可能仍然希望发送消息.

所以我使用空挡块是对的还是有一个我不知道的更好的替代方案?

.net c# error-handling exception

33
推荐指数
4
解决办法
2万
查看次数