我有一个生成异常的函数.例如,以下代码:
void test()
{
ifstream test("c:/afile.txt");
if(!test)
{
throw exception("can not open file");
}
// other section of code that reads from file.
}
Run Code Online (Sandbox Code Playgroud)
抛出异常后我需要返回吗?
c#是什么情况?
Aas*_*set 48
throw通常会导致函数立即终止,所以即使你在它之后放置任何代码(在同一个块内),它也不会执行.这适用于C++和C#.但是,如果在try块中抛出异常并且异常被捕获,则执行将在适当的catch块中继续,如果存在finally块(仅限C#),则将执行是否抛出异常.无论如何,紧随其后的任何代码throw都将永远不会被执行.
(请注意,throw直接在try/ 内部catch通常是一个设计问题 - 异常是针对函数之间的冒泡错误而设计的,而不是函数中的错误处理.)
| 归档时间: |
|
| 查看次数: |
28785 次 |
| 最近记录: |