草庐IT

Try-Catch-Finally

全部标签

javascript - 如何在 try catch block 中使用 const

这个问题在这里已经有了答案:Javascriptsetconstvariableinsideofatryblock(7个回答)关闭5年前。const是一个block级变量,所以当我尝试可疑代码时try{constfoo=bar[global.name].foofoo[global.name2];}catch(err){console.log(error(err.message));}const隐藏在{}但是constfoo;try{foo=bar[global.name].foofoo[global.name2];}catch(err){console.log(error(err.me

python - python中的嵌套try语句?

有没有更好的方法来做以下事情:try:a.method1()exceptAttributeError:try:a.method2()exceptAttributeError:try:a.method3()exceptAttributeError:raise它看起来很讨厌,我宁愿不这样做:ifhasattr(a,'method1'):a.method1()elseifhasattr(a,'method2'):a.method2()elseifhasattr(a,'method3'):a.method3()else:raiseAttributeError保持最大效率。

c++ - throw 在 catch 省略号 (...) 中是否会重新抛出 C++ 中的原始错误?

如果在我的代码中有以下代码段:try{doSomething();}catch(...){doSomethingElse();throw;}throw是否会重新抛出默认省略号处理程序捕获的特定异常? 最佳答案 是的。异常在被捕获之前一直处于事件状态,此时它变为非事件状态。但是它会一直存在到处理程序的范围结束。从标准来看,强调我的:§15.1/4:Thememoryforthetemporarycopyoftheexceptionbeingthrownisallocatedinanunspecifiedway,exceptasnote

c# - XML 阅读器 : how to catch syntax errors in the xml file?

我有一个语法错误的XML文件。例如。当我创建一个XML阅读器时,它不会抛出任何错误。我有办法像XMLDocument一样自动进行语法检查吗?我已经尝试设置各种XmlReaderSettings标志,但没有发现任何有用的东西。 最佳答案 要使用XmlReader检查XML文档是否格式良好,您必须实际阅读该文档。在C#中,这样做:vartxt="";XmlReaderreader=XmlReader.Create(newStringReader(txt));while(reader.Read()){}我运行该代码得到的结果是:Excep

c# - IDisposable:是否有必要在 finally {} 上检查 null?

在您在网络上找到的大多数明确不使用“使用”的示例中,模式类似于:SqlConnectionc=newSqlConnection(@"...");try{c.Open();...}finally{if(c!=null)//如果您使用“using”并查看生成的IL代码,您可以看到它生成了null的检查L_0024:ldloc.1L_0025:ldnullL_0026:ceqL_0028:stloc.sCS$4$0000L_002a:ldloc.sCS$4$0000L_002c:brtrue.sL_0035L_002e:ldloc.1L_002f:callvirtinstancevoid[m

php - 将 Try/catch 与 Do/While 结合使用

这更像是一个概念性问题。将do/while循环与try/catch混合使用是否可以接受/良好的编程?例如:';return0;}catch(Exception$e){return1;}}functionbar(){try{echo'DOBARSTUFF';return0;}catch(Exception$e){return1;}}?>我问的原因是我在某处读到混合两者是不好的做法。您应该创建自己的异常并“抛出”它们。但这不是有点矫枉过正吗?编辑:为了解释这个问题出现的场景,想象一个必须遵循一条线的机器人。机器人每次迈出一步时都会计算其位置(X位置、Y位置、Z位置和“姿势”位置)并将信息发

java - JVM 同步 Finally block

查看JavaVirtualMachineSpecification编译后的代码告诉我们如何"synchronized"block是用java实现的。以下代码:publicvoidtestSync(){Objectobj=getSomeObject();synchronized(obj){doSomething();}}...大致相当于这个伪代码:publicvoidtestSync(){Objectobj=getSomeObject();Object__temp=obj;monitorenter__temp;try{doSomething();}finally{monitorexit_

java - 为什么 catch block 在 Java 中未初始化变量时出错

这是我写的代码。intnum;try{num=100;DoSomething();System.out.println(num);}catch(Exceptione){DoSomething1();}finally{DoSomething2();}System.out.println(num);//ErrorLine我在提到的错误行上收到错误“局部变量num可能尚未初始化”。删除catchblock时,错误消失。这里有什么问题?我做错了什么吗? 最佳答案 如果在您的tryblock中抛出异常,那么变量num可能确实没有被初始化。如果

java - try catch block 创建干净代码的最佳实践是什么?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:BestpracticesforexceptionmanagementinJAVAorC#我读过aquestion今天早些时候在stackoverflow上,它让我思考什么是处理异常的最佳实践。所以,我的问题是什么是最佳实践来处理异常以产生干净和高质量的代码。这是我的代码,我认为它很简单,但如果我错了或不清楚,请告诉我!我试图牢记方法中的可测试性和相同的抽象级别。欢迎提出建设性意见。:)importjava.awt.Point;importjava.io.Closeable;importjava.io.Fil

c++ - 使用 std::try_to_lock 的意外行为

当我尝试运行以下代码时,我遇到了令人惊讶和冲突的行为。#include#includeintmain(){std::mutexmtx;std::unique_locklock1(mtx);std::unique_locklock2(mtx,std::try_to_lock);std::cout当我在我的计算机上运行它时(使用clang++4.0.1或g++7.3.0的linux)它打印出lock1和lock2拥有锁(奇怪)。当我在cpp.sh上运行它时,它说lock1拥有锁,但lock2不拥有锁(如我所料)。所有都使用C++11和-Wall没有优化。 最佳答