我已經使用SmartIrc4Net在C#中編寫了一個IRC bot,bot的目的是在識別命令時提供信息。防止控制檯應用程序在捕獲異常後關閉
我的問題是,在導致應用程序關閉的代碼中可能發生異常,但是是否有可能讓應用程序繼續運行,並且沒有任何「按任意鍵繼續」消息出現。理想情況下,只需記錄異常並繼續。
我知道我可以在第一時間管理異常,但以每個命令爲基礎驗證所有輸入需要很長時間。或者甚至可能還有其他例外,我可能沒有涉及。
static void Main(string[] args)
{
IrcClient bot = new IrcClient();
// attach events
try
{
// connect to server, login etc
// here we tell the IRC API to go into a receive mode, all events
// will be triggered by _this_ thread (main thread in this case)
// Listen() blocks by default, you can also use ListenOnce() if you
// need that does one IRC operation and then returns, so you need then
// an own loop
bot.Listen();
// disconnect when Listen() returns our IRC session is over
bot.Disconnect();
}
catch (ConnectionException e)
{
Console.WriteLine("Couldn't connect! Reason: " + e.Message);
Console.ReadLine();
}
catch (Exception e)
{
Console.WriteLine(">> Error: " + e);
}
}
問題。鑑於你試圖捕捉*任何*異常,是什麼讓你認爲這是一個安全的假設?當意外事件發生時,儘可能早地讓程序崩潰幾乎總是比較好 - 而不是可能將自己的狀態變爲無法識別的形式。捕獲*具體*例外,你有一個實際的*策略*處理,並讓所有其他人終止你的程序。 –