try-finally相关内容
请解释为什么异常出现在第一个程序中,但没有出现在第二个程序中. 1) read 方法中没有返回语句 类示例{公共静态无效读取(){尝试{诠释 i = 9/0;}最后{System.out.println("此程序异常");}}公共静态无效主要(字符串 [] 邪){读();}} 2)read方法中带有return语句 类示例{公共静态无效读取(){尝试{诠释 i = 9/0;}最后{Sy
..
try/catch 块中的 return 语句如何工作? 函数示例() {尝试 {返回真;}最后 {返回假;}} 我希望这个函数的输出是 true,但实际上它是 false! 解决方案 最后 always 执行.这就是它的用途,这意味着它的返回值会在您的情况下使用. 您需要更改您的代码,使其更像这样: 函数示例() {变种返回状态=假;//初始化值真的由设计决定尝试 {返回状态
..
我不确定为什么我们在 try...except...finally 语句中需要 finally.在我看来,这个代码块 尝试:run_code1()除了类型错误:run_code2()其他代码() 使用 finally 与这个相同: 尝试:run_code1()除了类型错误:run_code2()最后:其他代码() 我错过了什么吗? 解决方案 早点回来会有所不同: 尝试:run_c
..
我不确定为什么我们需要 finally 在 try...except...finally 语句中.在我看来,这个代码块 尝试:运行代码1()除了类型错误:run_code2()其他代码() 与使用finally的这个相同: 尝试:运行代码1()除了类型错误:run_code2()最后:其他代码() 我错过了什么吗? 解决方案 早点回来会有区别: 尝试:运行代码1()除了类型错误:
..
看看下面两种方法: public static void foo() {尝试 {富();} 最后 {富();}}公共静态无效栏(){酒吧();} 运行 bar() 显然会导致 StackOverflowError,但运行 foo() 不会(程序似乎无限期地运行).这是为什么? 解决方案 它不会永远运行.每次堆栈溢出都会导致代码移动到 finally 块.问题是这将需要非常非常长的时间.
..
嗨,嵌套 try & 的最佳方法是什么?delphi 中的 finally 语句? var cds1 : TClientDataSet;cds2 : TClientDataSet;cds3 : TClientDataSet;cds4 : TClientDataSet;开始cds1 := TClientDataSet.Create(application);尝试cds2 := TClientDat
..
我有一个简单的 Java 类,如下所示: 公共类测试{私人字符串;公共字符串 foo() {尝试 {s = "开发";返回 s;}最后 {s = "覆盖变量 s";System.out.println("进入finally块");}}公共静态无效主(字符串[] xyz){测试 obj = 新测试();System.out.println(obj.foo());}} 这段代码的输出是这样的:
..
使用简单的 try/finally 块编译以下代码时,Java 编译器会生成以下输出(在 ASM 字节码查看器中查看): 代码: 试试{System.out.println("试图除以零...");System.out.println(1/0);}最后{System.out.println("终于……");} 字节码: TRYCATCHBLOCK L0 L1 L1L0LINENUMBE
..
我正在努力解决这个问题.根据本页上的Using语句: using 语句确保即使在调用对象方法时发生异常,也会调用 Dispose.您可以通过将对象放在 try 块中,然后在 finally 块中调用 Dispose 来获得相同的结果;实际上,编译器就是这样翻译 using 语句的. 但是在这个页面上关于Try-Finally阻止了它状态: 在已处理的异常中,保证运行相关的 fin
..
我正在 Powershell 中使用 Try/Finally 编写监控脚本,以便在脚本结束时记录消息.该脚本旨在无限期运行,因此我想要一种方法来跟踪意外退出. 所有其他 StackOverflow 帖子和帮助页面 我检查了状态: 即使您使用 CTRL+C 停止脚本,Finally 块也会运行.如果 Exit 关键字从 Catch 块中停止脚本,则 finally 块也会运行. 在
..
我正在编写一个忽略异常的循环,并且效果很好. for (; flag; ) { try { //do something ignore exception. Runnable r = queue.pollFirst(); r.run(); } catch (Exception ig
..
您如何将嵌套的try/finally块从例程“提取"到可重用的实体中?说我有 procedure DoSomething; var Resource1: TSomeKindOfHandleOrReference1; Resource2: TSomeKindOfHandleOrReference2; Resource3: TSomeKindOfHandleOrReference3;
..
我昨天偶然发现了一个有趣的错误,并且已经解决了该错误,但是今天早晨它仍然困扰着我,所以我想看看是否有人可以对此问题有所了解. 相关代码: final ResultSet rs = prepStatement.executeQuery(); try { if (!rs.next()) { throw new IllegalStateException("Expec
..
我在StackOverflow上看到了以下代码: with TDownloadURL.Create(nil) do try URL := 'myurltodownload.com'; filename := 'locationtosaveto'; try ExecuteTarget(nil); except result := fa
..
可能重复: 其他目的,最后是异常处理 我想了解为什么try/except语句中存在finally子句.我了解它的作用,但很明显,如果它在语言中应占一席之地,我会丢失一些东西.具体来说,在finally字段中写子句与在try/except语句之外写子句有什么区别? 解决方案 try套件可以得到执行,无论try套件中发生了什么. 使用它来清理文件,数据库连接等: try:
..
这是代码示例: Try Throw New FirstException() Finally Throw New SecondException() End Try 我发现它只会抛出SecondException,而FirstException就会消失. 我以为FirstException将在SecondException的InnerException属性内,但事
..
由于某种原因,我无法在控制台应用程序中运行我的finally块.我正在编写此代码来测试finally块的工作原理,因此非常简单: static void Main() { int i = 0; try { int j = 1 / i; // Generate a divide by 0 exception. } finally
..
当我在while循环中最终使用时,我试图理解该机制. 在下面的代码中. 最后行打印,然后休息一会儿.我期望代码不会到达finally块.或者,如果到达了finally块,那么这里没有没有中断,因此应该继续..有人可以解释它是如何工作的吗? while(true){ System.out.println("in while");
..
我有代码: class Test { public static void main(final String [] args) { System.out.println(foo()); } private static int foo() { int a = 0; try { ++a; return a;
..
关于OO Delphi中的最佳实践,我有一个一般性的问题.目前,我在创建对象的任何地方都放置了try-finally块,以在使用后释放该对象(以避免内存泄漏).例如: aObject := TObject.Create; try aOBject.AProcedure(); ... finally aObject.Free; end; 代替: aObject := TOb
..