program处理线程异常

using HPSocketCS;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WechatAPI.BLL;
using WechatAPI.BLL.foundation;
using WechatAPI.BLL.Login;
using WechatAPI.Model;
using WechatAPI.Model.FriendCircle;
using WechatAPI.Model.Msgage;

namespace WechatAPI
{
class Program
{

    public delegate RequestBase SyncMsgDelegate(string wxid);
    static void Main(string[] args)
    {
        //Friend_F friend_F = new Friend_F();
        //var result = friend_F.GetMFriendUsers("wxid_c2gls8ooqd5j22");
        try
        {
            WxConrol_Function.listWxControls= WxConrol_Function.GetlistWxControls();
            ushort port = new ConfigRw().Port;
            Console.Title = port.ToString();
            new MyWebSocketServer().Run("0.0.0.0", port);
            do
            {
                Console.WriteLine("输入quit退出!");
            } while (Console.ReadLine() != "quit");
            //设置应用程序处理异常方式:ThreadException处理
            Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
            //处理UI线程异常
            Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
            //处理非UI线程异常
            AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
        }
        catch (Exception ex)
        {
            Console.WriteLine("ErrorMsg:{0}\r\n\t{1}", ex.Message, ex.StackTrace);
            Console.ReadKey();
        }

    }

    static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
    {
        string str = GetExceptionMsg(e.Exception, e.ToString());
        Console.WriteLine(str + "11112233", "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
        Console.ReadKey();
    }
    static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
    {
        string str = GetExceptionMsg(e.ExceptionObject as Exception, e.ToString());
        Console.WriteLine(str+"11112233", "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
        Console.ReadKey();
    }

    /// <summary>
    /// 生成自定义异常消息
    /// </summary>
    /// <param name="ex">异常对象</param>
    /// <param name="backStr">备用异常消息:当ex为null时有效</param>
    /// <returns>异常字符串文本</returns>
    static string GetExceptionMsg(Exception ex, string backStr)
    {
        StringBuilder sb = new StringBuilder();
        sb.AppendLine("****************************异常文本****************************");
        sb.AppendLine("【出现时间】:" + DateTime.Now.ToString());
        if (ex != null)
        {
            sb.AppendLine("【异常类型】:" + ex.GetType().Name);
            sb.AppendLine("【异常信息】:" + ex.Message);
            sb.AppendLine("【堆栈调用】:" + ex.StackTrace);
        }
        else
        {
            sb.AppendLine("【未处理异常】:" + backStr);
        }
        sb.AppendLine("***************************************************************");
        return sb.ToString();
    }

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值