回答
- 您可以拥有多个与try块关联的catch块,但只有一个catch块可以处理您的异常。
- 是的,你可以没有赶上try块,但它是强制性的有 finally块
当catch块发现异常时,其他catch块将执行或不执行? –
您可以轻松地管理异常并将其传播到另一个块,即使我真的无法得到它的帮助 – sataniccrow
是的,你可以有try语句多个catch块。首先捕捉特定的例外,然后在最后一个块中获取基地Exception
。只有一个catch块会处理你的异常。
你可以尝试没有catch块的块。尝试/最后会做。
try
{
Console.Write("test");
}
catch (IOException ex)
{
}
catch (ArithmeticException ex)
{
}
catch (Exception ex)
{
}
尝试没有赶上
try
{
}
finally
{
}
如果catch块处理异常,其他catch块会发生什么? –
@chandrasekhar - 没什么。只有一个catch块会被执行。 –
1是it's possible to have multiple catch
,一个渔获一项特殊例外
样品
try
{
...
}
catch (FormatException)
{
....
}
catch (OverflowException)
{
...
}
2你可以有try
instrction没有catch
try
{
...
}
Finally
{
.....
}
至于你的问题的第二部分,你可以做任何
try
{
stuff...
}
catch(Exception ex){}
或
try
{
stuff...
}
finally{}
,但你不能这样做本身尝试。
只有一个catch
块会执行,并且它将是catch
,它与引发的Exception
的类型非常匹配。 自己不能拥有try
。你需要一个try catch (one or more catch block)
或try finally
或try catch finally
从技术上讲,你只能打一个陷阱,但你说:
可以在多个catch块被执行单个try语句
关键字是执行。所以,你可以尝试:
catch (Exception ex)
{
if (ex is MyException1||
ex is MyException2)
{
//do stuff
}
else
{
throw;
}
}
你可以有任意数量的catch
块的一次尝试..catch语句。
但请remeber一两件事,那你
catch (Exception ex)
{
...
}
应该是最后的catch块,因为所有的异常继承类的异常。
可以有多个catch块(如已经在其他答案中所述),但只执行第一个匹配异常类型的catch块。这意味着你需要正确地订购catch块。例如:
try
{
}
catch (Exception exp1)
{
// Block 1
}
catch (IOException exp2)
{
// Block 2
}
块2将永远不会被执行,如块1个捕获每个异常(所有的异常类是从Exception
导出)。
try
{
}
catch (IOException exp1)
{
// Block 1
}
catch (Exception exp2)
{
// Block 2
}
在这个例子中,数据块2将仅如果异常不是IOException
或从IOException
衍生执行。如果抛出IOException
,则只执行块1,块2不执行。
- 1. 我可以执行多个Catch块吗?
- 2. 我可以执行多个与一个try块对应的catch块吗?
- 3. catch块多次运行InputMismatchException
- 4. 在CATCH块后执行代码吗?
- 5. 代码中“catch”块不执行
- 6. try/catch块中的代码未执行
- 7. Catch块是没有得到执行
- 8. 在一个catch块中执行两个不同的异常
- 9. Catch不执行Toast
- 10. 这两个承诺/块的catch语句都没有执行
- 11. 为什么catch程序块为单个异常执行两次?
- 12. 当我们为一个try块创建多个catch时,首先执行哪个块?为什么?
- 13. 如果catch块包含continue语句,何时执行finally块?
- 14. 如果`try`或`catch`块中有`return`,`finally`块会被执行吗?
- 15. try或catch块中断时finally块不执行
- 16. 我应该写多少个try&catch块?
- 17. 多个IF语句在catch块回滚
- 18. 在try catch块中多个fs.createReadStream
- 19. 异常处理与多个catch块
- 20. 多个语句在try/catch块 - Java的
- 21. Java - 如果我返回一个catch块,finally块会被执行吗?
- 22. C#句柄中的try-catch块是否可以输入多个catch块?
- 23. 几个“ChildException”catch块versius一个“Exception”catch块
- 24. 多个JavaScript块执行失序
- 25. objective-c:执行多个transitionWithView动画块
- 26. 错误的catch块运行
- 27. JAVA:执行Catch not try
- 28. Catch不执行其代码
- 29. C#执行try和catch
- 30. 只使其中一个正在运行的线程执行catch块?
当你尝试时发生了什么?你的电脑上安装了Visual Studio吗?如果不是,我会建议你先安装它。然后运行它。然后创建一个新的项目,在那里你可以尝试一下并使用C#来玩。一旦你在使用C#代码时遇到一些问题,不要犹豫,回到StackOverflow,显示你写的代码并提出一个关于它的问题。 –
我是使用异常的先行者,所以我想知道更多关于它们的信息。 –
当然,启动Visual Studio,创建一个新的控制台应用程序并尝试编写代码。此外,MSDN文档将帮助您入门。你问的这种问题很容易通过编写几行代码来验证。试试吧 - 你会看到的。编译器会引导你。您可以使用调试器在代码中放置断点并在运行时逐步执行,以便您可以跟踪程序的执行流程。我的意见的一点是,在网上论坛上提问之前,你应该自己尝试一下。 –