タグ付けされた質問 「exception-handling」

例外は、プログラムの通常のフローからの逸脱を必要とする異常な状態です。通常、例外は完全に失敗することはなく、代わりに例外ハンドラーが付きます。例外処理は、多くのプログラミング言語に組み込まれている構造です。通常、例外はスタックを巻き戻し、例外のスコープ外の定義された状態にロールバックしてからハンドラーブロックまたはルーチンを呼び出すことによって処理されます。

12
例外の安全性のために「スコープ付きの動作」を取得する手段としてIDisposableおよび「using」を使用することは悪用ですか?
私がC ++でよく使用したのは、コンストラクターとデストラクターを使用して、AクラスBに別のクラスの状態の開始条件と終了条件を処理させ、Aそのスコープ内の何かが例外をスローした場合にBが既知の状態になるようにすることでした。スコープが終了しました。これは頭​​字語に関する限り、純粋なRAIIではありませんが、それでも確立されたパターンです。 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をスローしないでください。 残念ながら、その理由を説明することはありません。理由は推測できますが、この件についてより権威のある誰かが洞察を提供してくれることを願っています。 最初の2つは明らかな意味を持っていますが、後の2つはあなたが採用したいもののように見えます(実際、私はそうです)。 さらに、これらは回避すべき唯一の例外ですか?他に人がいる場合、それらは何であり、なぜそれらも回避する必要があるのですか?

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(); } Atomクラスの他のインスタンスを含むelementはどこにありますTransformGroupかTransformGroups。 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) …




1
Real World Haskellのどの部分が廃止されたか、悪い習慣と見なされていますか?
Real World Haskellの 19章では、の変更により、多くの例が失敗しControl.Exceptionます。 そのため、この本の内容の一部は実際には時代遅れであり、もう勉強する価値がないと思います。結局6年になります。私の唯一の他の参考文献はLearn You a Haskell For Great Goodですが、素晴らしい本ですが、RWHと比較するとはるかに基本的です。 この本を以前に読んだことのある人なら、関係のない部分についてアドバイスをいただけますか?特に、本の後半の章、たとえば、ソフトウェアトランザクションメモリ、並行プログラミング、ソケットプログラミングなど。 編集:これは、今日(2017年11月)で唯一知られているエディションである、2008年12月に発行された本のエディションに関するものです。

6
「リストインデックスが範囲外です」という例外処理をしたいのですが。
BeautifulSoupを使用して、いくつかのHTMLを解析しています。 (forループを使用して)各HTMLから特定のデータを取得し、そのデータを特定のリストに追加しています。 問題は、一部の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を追加します。 エラーが表示されます: list …






4
Pythonで例外メッセージを正しく取得する方法
Pythonの標準ライブラリのコンポーネントから例外のメッセージを取得するための最良の方法は何ですか? 場合によっては、次のmessageようなフィールドから取得できることに気付きました。 try: pass except Exception as ex: print(ex.message) ただし、場合によっては(たとえば、ソケットエラーの場合)、次のようなことを行う必要があります。 try: pass except socket.error as ex: print(ex) これらの状況のほとんどをカバーする標準的な方法はありますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.