【发布时间】:2021-04-04 06:54:52
【问题描述】:
我正在尝试创建一个命令行应用程序,该应用程序搜索用户输入的歌曲名称和专辑目录,然后播放该歌曲。当用户输入一个不存在的歌曲名或专辑时,程序会抛出一个DriectoryNotFoundException。
我已将“歌曲抓取器”功能放在 try 块中,然后如果用户输入无效目录,它会转到 catch 块并再次尝试。它按预期工作,但只有一次。我已经尝试放置一个 while 循环来确保 try/catch 函数继续工作,直到程序完全成功。
while (true)
{
try
{
MusicSelector.SongGrabber();
break;
}
catch (System.IO.DirectoryNotFoundException)
{
Console.WriteLine("Enter the exact song names and album.");
MusicSelector.SongGrabber();
}
}
在用户输入有效目录之前,我应该怎么做才能重试?
【问题讨论】:
-
理想情况下,您不会使用 try catch 作为主要流控制。您将改为使用其中一种 Exist 方法检查目录,然后回退到异常处理
标签: c# loops exception while-loop try-catch