Tag: try catch

在C ++中通过指针捕获exception

我发现有三种方法可以发现exception,有什么区别? 1)抓住价值; 2)参照; 3)抓住指针; 我只知道,通过值捕获将调用对象的两个副本,引用通过将调用一个。 那么如何通过指针捕捉? 何时使用指针捕获? 除了抛出一个对象之外,我可以抛出一个像这样的对象的指针吗? class A {} void f() { A *p = new A(); throw p; }

C#“终于”阻止总是执行?

可能重复: 如果我在Try块中返回一个值,将会在finally语句中编写代码? 考虑下面的代码C#代码。 “finally”块是否执行? public void DoesThisExecute() { string ext = "xlsx"; string message = string.Empty; try { switch (ext) { case "xls": message = "Great choice!"; break; case "csv": message = "Better choice!"; break; case "exe": message = "Do not try to break me!"; break; default: message = "You will not win!"; return; } […]

如果我在Try块中返回一个值,将会在finally语句中编写代码?

我正在复习一些朋友的代码,并说他在try-finally块中使用了一个return语句。 即使try块的其余部分没有,Finally部分中的代码是否仍然激活? 例: public bool someMethod() { try { return true; throw new Exception("test"); // doesn't seem to get executed } finally { //code in question } }

为什么我不应该在“尝试” – “捕捉”包装每个块?

我一直认为,如果一个方法可以抛出一个exception,那么不要用一个有意义的try块来保护这个调用是鲁莽的。 我只是张贴' 你应该总是打包调用,可以尝试,赶上块。 “ 这个问题 ,并被告知,这是”非常糟糕的build议“ – 我想明白为什么。

在Python中使用try-except-else是一个好习惯吗?

不时在Python,我看到块: try: try_this(whatever) except SomeException as exception: #Handle exception else: return something try-except-else存在的原因是什么? 我不喜欢这种编程,因为它使用exception来执行stream量控制。 但是,如果它被包含在语言中,那么一定有一个很好的理由,不是吗? 我的理解是,exception不是错误 ,只能用于例外条件(例如,我试图写入文件到磁盘,没有更多的空间,或者我没有权限),而不是stream控制。 通常我会处理exception: something = some_default_value try: something = try_this(whatever) except SomeException as exception: #Handle exception finally: return something 或者如果我真的不想在exception发生时返回任何东西,那么: try: something = try_this(whatever) return something except SomeException as exception: #Handle exception

我可以在同一个catch子句中捕获多个Javaexception吗?

在Java中,我想要做这样的事情: try { … } catch (IllegalArgumentException, SecurityException, IllegalAccessException, NoSuchFieldException e) { someCode(); } …代替: try { … } catch (IllegalArgumentException e) { someCode(); } catch (SecurityException e) { someCode(); } catch (IllegalAccessException e) { someCode(); } catch (NoSuchFieldException e) { someCode(); } 有没有办法做到这一点?

如何使用try catch进行exception处理是最佳实践

在维护我的同事代码的同时,即使是自称是高级开发人员的代码,我也会经常看到以下代码: try { //do something } catch { //Do nothing } 或者有时他们将日志logging信息写入日志文件,如下面的try catch块 try { //do some work } catch(Exception exception) { WriteException2LogFile(exception); } 我只是想知道他们做了什么是最好的做法? 这让我感到困惑,因为我认为用户应该知道系统会发生什么。 请给我一些build议。

更好地“尝试”一些东西,并捕捉exception或testing是否可能首先避免exception?

我应该testing一下是否有效,或只是try去做,并捕获exception? 有没有可靠的文件说有一种方法是优先的? 是一种更pythonic ? 例如,我应该: if len(my_list) >= 4: x = my_list[3] else: x = 'NO_ABC' 要么: try: x = my_list[3] except IndexError: x = 'NO_ABC' 有些想法… PEP 20说: 错误不应该默默通过。 除非明确沉默。 应该使用一个try而不是一个if被解释为一个错误地传递的错误? 如果是这样,你是否明确地使用这种方式来消除它,因此,它可以吗? 我不是指只能做1件事情的情况; 例如: try: import foo except ImportError: import baz

当不抛出exception时,是否尝试/捕获块会损害性能?

在与微软员工进行代码审查的过程中,我们遇到了try{}块中的大部分代码。 她和IT代表build议,这可能会影响代码的执行。 实际上,他们build议大部分的代码应该在try / catch块之外,只有重要的部分应该被检查。 微软员工补充说,即将发布的白皮书警告不正确的try / catch块。 我环顾四周,发现它可以影响优化 ,但似乎只适用于范围之间共享variables。 我并不是在询问代码的可维护性,甚至是处理正确的exception(这个代码无疑需要重新分解)。 我也不是指使用exception进行stream量控制,这在大多数情况下显然是错误的。 这些是重要的问题(有些更重要),但不是重点。 try / catch块在不抛出exception时如何影响性能? 编辑:我添加一个赏金。 有一些有趣的回应,但我想获得更多的意见。

为什么在C#中捕获并重新抛出exception?

我正在看可序列化DTO上的文章C# – 数据传输对象 。 文章包含这段代码: public static string SerializeDTO(DTO dto) { try { XmlSerializer xmlSer = new XmlSerializer(dto.GetType()); StringWriter sWriter = new StringWriter(); xmlSer.Serialize(sWriter, dto); return sWriter.ToString(); } catch(Exception ex) { throw ex; } } 本文的其余部分看起来理智和合理(对于noob),但是try-catch-throw会抛出WtfException … 这不完全等同于不处理exception吗? 人机工程学: public static string SerializeDTO(DTO dto) { XmlSerializer xmlSer = new XmlSerializer(dto.GetType()); StringWriter sWriter = new StringWriter(); […]