C# convert 函数执行错误不抛出异常

使用VS2019 ,debug模式下调试程序,使用 “Convert.ToDateTime”
转换失败,但是编译器不报错,直接退出当前方法。
请问如何让编译器抛出异常,方便调试。

            int num = 100;
            DateTime dateTime = Convert.ToDateTime("9/14/78");
              num = 101;
            MessageBox.Show(num.ToString ());

不会执行

num = 101;
也没有错误提示信息

我在 num =101; 的地方增加断点,断点不会生效。


完整代码:
 private void Form1_Load(object sender, EventArgs e)
        { 

            int num = 100;
            DateTime dateTime = Convert.ToDateTime("9/14/78");
                        //在下面这行打断点,不会执行到断点这里
              num = 101;
            MessageBox.Show(num.ToString ());
        }

修改代码:

 private void Form1_Load(object sender, EventArgs e)
        {
            int num = 100;
            DateTime dateTime = Convert.ToDateTime("aaa");
            //在下面这行打断点,不会执行到断点这里
            num = 101;
            MessageBox.Show(num.ToString());
        }

我想解决的是为什么捕获不到异常,而不是想解决转换问题。

这不太可能,你有 try catch 么?
转换失败会丢出异常的。你再仔细检查下

或者贴完整的代码看看。

试试看 DateTime.TryParse 看看,是否返回false

没有报错并且执行到MessageBox说明转换成功,退出可能是别的代码逻辑造成的,未必是这里。

图片说明

你用Thread.CurrentThread.CurrentCulture.Name获取下当前的区域性名称

下面这个会报错

 CultureInfo.CurrentCulture = new CultureInfo("zh-CN", false);

 DateTime dateTime = Convert.ToDateTime("9/14/78");

而下面这个可以

CultureInfo.CurrentCulture = new CultureInfo("en-US", false);

DateTime dateTime = Convert.ToDateTime("9/14/78");

可能你电脑当前区域设置不对,在控制面板>区域里设置

你是怎么知道转换失败的??
一般 你不做错误处理 都会抛出异常的

你的 DateTime dateTime = Convert.ToDateTime("9/14/78");就直接报错了。你可以捕获这个错看看。