使用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");就直接报错了。你可以捕获这个错看看。