c# - String.Format 因奇怪错误而失败

标签 c# multithreading exception string.format

<分区>

我有一个使用以下代码运行的方法:

private void WriteToDb()
{
    using (SqlConnection dbConnection = new SqlConnection(_conStr))
    {
        dbConnection.Open();
        using (SqlBulkCopy sbc = new SqlBulkCopy(_conStr))
        {
            sbc.DestinationTableName = "tblLog";
            try
            {
                sbc.WriteToServer(_tblLog);
            }
            catch (Exception e)
            {
                Console.WriteLine(String.Format("{0} Error writing log info: {1} \n {3}", DateTime.Now.ToString(), e.Message, e.StackTrace));
            }
        }
    }

    _tblLog.Rows.Clear();
}

我收到来自 String.Format() 方法的异常,堆栈跟踪如下:

Unhandled Exception: System.FormatException: Index (zero based) must be greater than or equal to zero and less than the size of the argument list. at System.Text.StringBuilder.AppendFormat(IFormatProvider provider, String format, Object[] args) at System.String.Format(IFormatProvider provider, String format, Object[] args) at System.String.Format(String format, Object arg0, Object arg1, Object arg2) at MyCompany.MyClient.MySoftware.Logger.WriteToDb()

我真的能看出这个错误的根源。据我所知,我没有在该方法中使用任何集合。我还不得不承认这种方法是多线程的,但我还是想不出可能的影响。

谢谢!

最佳答案

您的最后一个格式编号是 {3} 而不是 {2}

关于c# - String.Format 因奇怪错误而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13197981/

相关文章:

c# - 如何比较 .NET 中的执行路径?

c# - 在 ASP.Net 中将数据更新到 SQL Server 的最佳实践是什么

c# - Convert.FromBase64String c# 上的 FormatException

c - 如何创建未定义数量的线程并在 Windows 上的 c 中使用 WaitForMultipleObjects()

ios - 处理请求时忽略对dispatch_async的调用

php - PHP-是否在类中正确使用了异常进行错误处理?

c# - C#确定继承接口(interface)类的最佳方法是什么?

Python 错误未使用 _posixsubprocess 模块

php - "Wrong parameters for Exception"创建Exception子类时

c++ - 如何捕获派生(多态)异常对象并将其重新抛出到第二级?