-1
我有一個關於C#中的try catch函數的問題。我在我的不和機器人中使用它,但它執行兩個。所以它會做嘗試和捕獲。爲什麼是這樣?我寫錯了什麼或錯過了一些小東西?C#執行try和catch
代碼:
private void RegisterKickCommand()
{
commands.CreateCommand("kick")
.Parameter("a", ParameterType.Unparsed)
.Alias(new string[] { "k" }) //add alias
.AddCheck((cm, u, ch) => u.ServerPermissions.KickMembers)
.Do(async (e) =>
{
await e.Channel.SendMessage(e.GetArg("a"));
if (e.Message.MentionedUsers.FirstOrDefault() == null)
{
await e.Channel.SendMessage(e.User.Mention + " That's not a valid user!");
}
else
{
try
{
await e.Message.MentionedUsers.FirstOrDefault().Kick();
await e.Channel.SendMessage(e.GetArg("Kick") + " was kicked!");
}
catch
{
await e.Channel.SendMessage(e.User.Mention + " I do not have permission to kick that user!");
}
}
});
}
嘛,當然! 'try'中的代碼將執行,直到遇到異常,此時它將開始執行'catch'。 – Kroltan
你應該讀一點關於try-catch的內容。 https://msdn.microsoft.com/en-us/library/0D565esw.aspx – kiziu
這就是try/catch的工作方式。 :) –