Questions tagged «exception-handling»

异常是一种异常情况,需要偏离程序的正常流程。通常,异常不应导致完全失败,而应由异常处理程序来处理。异常处理是许多编程语言中的内置构造。通常,通过展开堆栈来处理异常,从而回滚到异常范围之外的已定义状态,然后调用处理程序块或例程。

12
使用IDisposable和“使用”作为获取“范围内行为”以确保异常安全的手段是否在滥用?
我经常在C ++中使用的一种方法是让类通过构造函数和析构函数A处理另一个类的状态进入和退出条件,以确保如果该范围内的某些事物引发了异常,则当范围已退出。就首字母缩略词而言,这并不是纯粹的RAII,但这仍然是一个既定模式。BA 在C#中,我经常想做 class FrobbleManager { ... private void FiddleTheFrobble() { this.Frobble.Unlock(); Foo(); // Can throw this.Frobble.Fiddle(); // Can throw Bar(); // Can throw this.Frobble.Lock(); } } 需要这样做 private void FiddleTheFrobble() { this.Frobble.Unlock(); try { Foo(); // Can throw this.Frobble.Fiddle(); // Can throw Bar(); // Can throw } finally { …

5
为什么我们不抛出这些异常?
我遇到了这个MSDN页面,其中指出: 不要故意从您自己的源代码中抛出Exception,SystemException,NullReferenceException或IndexOutOfRangeException。 不幸的是,它不会费心解释原因。我可以猜出原因,但我希望有人对此问题更有权威。 前两个很明显,但是后两个看起来就像您想雇用的(事实上,我有)。 此外,这些是唯一应避免的例外吗?如果还有其他人,它们是什么?为什么也要避免它们?

5
从异常对象中提取回溯信息
给定一个Exception对象(来源不明),有没有办法获取其回溯?我有这样的代码: def stuff(): try: ..... return useful except Exception as e: return e result = stuff() if isinstance(result, Exception): result.traceback <-- How? 获得异常后,如何从Exception对象中提取回溯?

3
为什么writeObject会抛出java.io.NotSerializableException,我该如何解决?
我有这个异常,我不明白为什么会抛出该异常,或者应该如何处理。 try { os.writeObject(element); } catch (IOException e) { e.printStackTrace(); } 哪里element是一个TransformGroup包含一些其他TransformGroups类的Atom的一个实例: public class Atom extends Group implements Serializable{ float pozX,pozY; Group group= new Group(); Color3f blue = new Color3f(new Color(255)); Color3f black = new Color3f(new Color(0)); Sphere AtSph=new Sphere(); public Atom(final float WEIGHT, final int BOUNDS,final float radius,Color3f color) …



6
我想例外处理“列表索引超出范围”。
我正在使用BeautifulSoup并解析一些HTML。 我从每个HTML (使用for循环)中获取特定数据,并将该数据添加到特定列表中。 问题是,某些HTML具有不同的格式(它们中没有我想要的数据)。 因此,我尝试使用异常处理并将值添加null到列表中(我应该这样做,因为数据顺序很重要。) 例如,我有一个类似的代码: soup = BeautifulSoup(links) dlist = soup.findAll('dd', 'title') # I'm trying to find content between <dd class='title'> and </dd> gotdata = dlist[1] # and what i want is the 2nd content of those newlist.append(gotdata) # and I add that to a newlist 并且某些链接没有任何链接<dd class='title'>,所以我想要做的是将字符串添加null到列表中。 错误出现: …


1
现在,现实世界中Haskell的哪些部分已过时或被视为不良做法?
在“ 真实世界” Haskell的第19章中,由于的变化,现在许多例子都失败了Control.Exception。 这使我认为,也许已经有6年了,这本书中的某些内容实际上已经过时了,不再值得研究了。我唯一的参考资料是《学好Haskell for Great Good》,虽然这是一本很棒的书,但与RWH相比,它更基础。 曾经读过这本书的任何人都可以就其中哪些部分不再相关提出建议吗?尤其是本书后半部分的章节,例如,软件事务存储器,并发编程,套接字编程等。 编辑:这与2008年12月出版的书的版本有关,这是迄今为止(2017年11月)唯一已知的版本



4
如何在Python中正确获取异常消息
从Python标准库的组件中获取异常消息的最佳方法是什么? 我注意到在某些情况下,您可以通过如下message字段获取它: try: pass except Exception as ex: print(ex.message) 但在某些情况下(例如在套接字错误的情况下),您必须执行以下操作: try: pass except socket.error as ex: print(ex) 我想知道是否有标准方法可以涵盖大多数情况?




By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.