小心Debug与Release报错行号不一样

Debug调试版和Release发行版,它们有各用的特点和用途。但要注意抛出异常时的行号可能不相同。

以下面一段代码为例:

using System;
using System.Windows.Forms;
namespace ExceptionTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            try
            {
                int a = 10;
                int b = 0;
                Console.WriteLine(a / b);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
    }
}

 如果是使用Debug调试版,报错为17行:

但是,如果是使用Release发行版,报错则为15行。

这是因为JIT编译器在生成发布版时,会使用内联方法调用导致行号不一致。因此,要排错,应该选用Debug版本;如果代码有改动,还得利用SVN版本来查看标记的版本。

posted @ 2022-12-30 13:38  我也是个傻瓜  阅读(126)  评论(0编辑  收藏  举报