C#中如何处理非数值输入导致的异常?
时间: 2024-09-21 20:11:04 浏览: 64
在C#中,处理非数值输入可能导致的异常通常使用`TryParse`或`Catch`块来捕获`FormatException`。例如,在获取用户输入并尝试转换为数字时,我们可以这样做:
```csharp
static void Main(string[] args)
{
Console.Write("请输入一个数字:");
double num;
if (!double.TryParse(Console.ReadLine(), out num))
{
Console.WriteLine("输入无效,请输入一个数字!");
return; // 或者抛出异常,如 throw new ArgumentException();
}
// 接下来的乘法操作...
}
```
这里,`double.TryParse()`会尝试将输入转换为`double`类型。如果转换成功,它会返回`true`并将结果存储在`num`变量中;如果失败,则返回`false`,我们可以在`if`条件内捕获到这个情况并给出错误提示。
如果希望在发生异常时有更详细的控制流程,也可以使用`catch`块来捕获异常:
```csharp
try
{
double num = Convert.ToDouble(Console.ReadLine());
}
catch (FormatException ex)
{
Console.WriteLine("输入不是一个有效的数字,错误信息:", ex.Message);
}
```
这样就能避免程序因为无法处理非数值输入而崩溃。
阅读全文