• Throw与Throw ex区别,记录日志的方法


    Throw 会保留堆栈, Throw ex会清空堆栈,从而找不到在什么地方出错。

    记录日志时,使用ex.ToString()得到出错信息, 如果有*.pdb文件则会显示详细的堆栈信息,包括行号等;

    如果没有*.pdb文件,则会显示出错信息和调用的相关方法,但是不会显示出错行号信息。

    可以用以下代码测试:

        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine(AppDomain.CurrentDomain.BaseDirectory);
                DoException();
                Console.ReadLine();
            }
    
            static void DoException()
            {
                try
                {
                    try
                    {
                        Error();
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("orgin: {0}", ex);
                        throw new Exception("wrap exception", ex);
                    }
                }
                catch (Exception eee)
                {
                    Console.WriteLine("out: {0}", eee);
                    //throw;
                }
            }
    
            static void Error()
            {
                int i = 5;
                Console.WriteLine(i);
                throw new Exception("origin exception");
            }
    
        }

  • 相关阅读:
    Qt 主窗口与子窗口之间传值
    Qt 如何使窗体初始最大化
    C++ strcmp与strncmp的比较
    Qt 状态栏(statusbar)的使用
    C++中的补零
    Qt QString转char[]数组
    PAT基础6-9
    PAT基础6-8
    PAT基础6-6
    PAT基础6-7
  • 原文地址:https://www.cnblogs.com/zq8024/p/2950656.html
Copyright © 2020-2023  润新知