当前位置: 首页 > 编程笔记 >

.NET Framework 使用finally块

茹展鹏
2023-03-14
本文向大家介绍.NET Framework 使用finally块,包括了.NET Framework 使用finally块的使用技巧和注意事项,需要的朋友参考一下

示例

不论是否发生异常finally { ... },atry-finally或a的块try-catch-finally始终执行(StackOverflowException抛出a或调用时除外)。Environment.FailFast()

它可以用来安全地释放或清除try { ... }块中获取的资源。

Console.Write("请输入文件名: ");
string filename = Console.ReadLine();

Stream fileStream = null;

try
{
    fileStream = File.Open(filename);
}
catch (FileNotFoundException)
{
    Console.WriteLine("File '{0}' could not be found.", filename);
}
finally
{
    if (fileStream != null)
    {
        fileStream.Dispose();
    }
}
           

 类似资料:
  • 问题内容: 据我所知,以下两个代码段将达到相同的目的。为什么有块呢? 代码A: 代码B: 问题答案: 如果您未处理的异常被抛出会怎样?(我希望你不会抓到…) 如果从try块内部返回会怎样? 如果catch块引发异常会怎样? 一个代码块确保 无论 您退出该代码块(以几种方式明确地中止整个过程),该代码块都将被执行。这对于确定性清除资源很重要。

  • 问题内容: 考虑到此代码,我是否可以绝对确定该块始终执行,无论它是什么? 问题答案: 是的,将在执行或代码块后调用。 唯一不会被调用的时间是: 如果你调用 如果你调用 如果JVM首先崩溃 如果JVM在或catch块中达到了无限循环(或其他不间断,不终止的语句) 操作系统是否强行终止了JVM进程;例如,在UNIX上 如果主机系统死机;例如,电源故障,硬件错误,操作系统崩溃等 如果该块将由守护程序线程

  • 确保在try语句后总是会执行的一个或多个语句(命令或表达式)。 Finally Statement Finally { Statements } 备注 每次使用finally都必须附属于(与之关联)它上面的try(或catch)语句。finally总是附属于它上面且离它最近的无主try语句,不过可以使用区块改变这种行为。 如果finally语句使用在不含catch块的try语句中,则以后无

  • 本文向大家介绍JavaScript 用finally()执行清理,包括了JavaScript 用finally()执行清理的使用技巧和注意事项,需要的朋友参考一下 示例 当前有一个建议(尚未成为ECMAScript标准的一部分),finally向承诺中添加回调,无论承诺是被实现还是被拒绝,都将执行该回调。从语义上讲,这类似于块的finally子句try。 通常,您将使用此功能进行清理: 重要的是要

  • (在本例中,假设是的有效索引,并且代码不会引发) 编辑:问题不是关于使用的必要性,而是关于我选择这样做时在性能上的任何收益或损失。没有它,就会创建一个变量。使用它,返回的值被存储在其他地方,也许是以一种更有效的方式。

  • Python 异常处理机制还提供了一个 finally 语句,通常用来为 try 块中的程序做扫尾清理工作。 注意,和 else 语句不同,finally 只要求和 try 搭配使用,而至于该结构中是否包含 except 以及 else,对于 finally 不是必须的(else 必须和 try except 搭配使用)。 在整个异常处理机制中, finally 语句的功能是:无论 try 块是否