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

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

4
Pythonで同等のe.printStackTrace
print(e)(eは例外です)発生した例外を出力することは知っていますが、Javaに相当するpythonでe.printStackTrace()、例外を発生した行まで正確に追跡し、そのトレース全体を出力するpythonを見つけようとしていました。 誰かe.printStackTrace()がPython の同等のものを教えてくれませんか?

15
Pythonの呼び出し側スレッドでスレッドの例外をキャッチする
私はPythonとマルチスレッドプログラミング全般に非常に慣れていません。基本的に、ファイルを別の場所にコピーするスクリプトがあります。これを別のスレッドに配置し....て、出力がスクリプトがまだ実行中であることを示すことができるようにしたいと思います。 私が抱えている問題は、ファイルをコピーできない場合に例外がスローされることです。これは、メインスレッドで実行している場合は問題ありません。ただし、次のコードを使用しても機能しません。 try: threadClass = TheThread(param1, param2, etc.) threadClass.start() ##### **Exception takes place here** except: print "Caught an exception" スレッドクラス自体で、例外を再スローしようとしましたが、機能しません。ここにいる人々が同様の質問をするのを見てきましたが、彼らはすべて私がやろうとしていることよりも具体的なことをしているようです(そして私は提供されるソリューションを完全に理解していません)。私は人々がの使用法について言及するのを見ましたsys.exc_info()が、それをどこでどのように使用するかわかりません。 すべての助けに大歓迎です! 編集:スレッドクラスのコードは以下のとおりです。 class TheThread(threading.Thread): def __init__(self, sourceFolder, destFolder): threading.Thread.__init__(self) self.sourceFolder = sourceFolder self.destFolder = destFolder def run(self): try: shul.copytree(self.sourceFolder, self.destFolder) except: raise

7
Exception.MessageとException.ToString()
ロギングするコードがありException.Messageます。しかし、私はを使用する方が良いと述べている記事を読みましたException.ToString()。後者では、エラーに関するより重要な情報を保持できます。 これは本当Exception.Messageですか?そして先に進んですべてのコードロギングを置き換えることは安全ですか? また、log4netにはXMLベースのレイアウトを使用しています。Exception.ToString()問題の原因となる無効なXML文字が含まれている可能性はありますか?

15
C ++は例外時にスタックトレースを表示します
例外がスローされた場合にスタックトレースをユーザーに報告する方法が必要です。これを行う最良の方法は何ですか?大量の追加コードが必要ですか? 質問に答えるには: できれば持ち運びできるようにしたいです。情報をポップアップ表示したいので、エラーが発生した場合、ユーザーはスタックトレースをコピーしてメールで送信できます。

25
どのように再試行キャッチを実装しますか?
try-catchは、例外処理を支援することを目的としています。これは、どういうわけか、システムをより堅牢にするのに役立つことを意味します。予期しないイベントからの回復を試みてください。 実行および命令(メッセージの送信)の際に何かが発生する可能性があるため、tryに含まれています。ほぼ予期しないことが発生した場合は、何かを行うことができます。例外をログに記録するためだけに呼び出されたとは思わない。キャッチブロックは、エラーから回復する機会を提供することを目的としています。 ここで、問題点を修正できるため、エラーから回復するとします。再試行するのはとても良いことです: try{ some_instruction(); } catch (NearlyUnexpectedException e){ fix_the_problem(); retry; } これはすぐに永遠のループに入りますが、fix_the_problemがtrueを返したとしたら、再試行します。Javaにはそのようなことはないので、この問題をどのように解決しますか?これを解決するための最良の設計コードは何ですか? これは哲学的な質問のようなものです。私が求めていることがJavaで直接サポートされていないことがすでにわかっているからです。

15
例外処理にtry catchを使用することがベストプラクティスです。
上級開発者であると主張する誰かからの私の同僚のコードを維持しながら、私はしばしば次のコードを見る: try { //do something } catch { //Do nothing } または時々彼らは次のtry catchブロックのようなログファイルにログ情報を書き込みます try { //do some work } catch(Exception exception) { WriteException2LogFile(exception); } 彼らがやったことがベストプラクティスなのかと思っているだけです。私の考えでは、ユーザーがシステムで何が起こるかを知っている必要があるので、それは私を混乱させます。 アドバイスをください。



9
この反復的なリスト成長コードはなぜIndexError:リスト割り当てインデックスが範囲外になるのですか?
次のコードを検討してください: i = [1, 2, 3, 5, 8, 13] j = [] k = 0 for l in i: j[k] = l k += 1 print j 出力(Win 7 32ビット上のPython 2.6.6)は次のとおりです。 > Traceback (most recent call last): > j[k] = l IndexError: list assignment index out of range それは私には理解できない単純なものだと思います。誰かがそれを片付けることができますか?
194 python  list  exception 

24
例外を通常の制御フローとして使用しないのはなぜですか?
私がGoogledを使用した可能性があるすべての標準的な回答を回避するために、私はあなたが自由に攻撃できる例を提供します。 C#やJava(とあまりにも多くの人は)タイプの「オーバーフローの行動のいくつかの私がすべてではないのと同様に行うのたっぷり持っている(例えばtype.MaxValue + type.SmallestValue == type.MinValue例: int.MaxValue + 1 == int.MinValue)。 しかし、私の悪質な性質を見て、この動作を拡張して、この傷害にいくつかの侮辱を加えますDateTime。たとえば、オーバーライドされたタイプとしましょう。(私DateTimeは.NETで封印されていることを知っていますが、この例では、DateTimeが封印されていないことを除いて、C#とまったく同じ擬似言語を使用しています)。 オーバーライドされたAddメソッド: /// <summary> /// Increments this date with a timespan, but loops when /// the maximum value for datetime is exceeded. /// </summary> /// <param name="ts">The timespan to (try to) add</param> /// <returns>The Date, incremented with the given …

25
java.lang.VerifyErrorを取得する原因
私は以下を調査しています java.lang.VerifyError java.lang.VerifyError: (class: be/post/ehr/wfm/application/serviceorganization/report/DisplayReportServlet, method: getMonthData signature: (IILjava/util/Collection;Ljava/util/Collection;Ljava/util/HashMap;Ljava/util/Collection;Ljava/util/Locale;Lorg/apache/struts/util/MessageRe˜̴MtÌ´MÚw€mçw€mp:”MŒŒ at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2357) at java.lang.Class.getConstructor0(Class.java:2671) これは、サーブレットがデプロイされているjbossサーバーが起動したときに発生します。これはjdk-1.5.0_11でコンパイルされており、jdk-1.5.0_15で再コンパイルしようとして成功しました。つまり、コンパイルは正常に実行されますが、デプロイされると、java.lang.VerifyErrorが発生します。 メソッド名を変更して次のエラーが発生した場合: java.lang.VerifyError: (class: be/post/ehr/wfm/application/serviceorganization/report/DisplayReportServlet, method: getMD signature: (IILjava/util/Collection;Lj ava/util/Collection;Ljava/util/HashMap;Ljava/util/Collection;Ljava/util/Locale;Lorg/apache/struts/util/MessageResources┬á├ÿ├àN|├ÿ├àN├Üw┬Çm├ºw┬ÇmX#├ûM|X├öM at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2357 at java.lang.Class.getConstructor0(Class.java:2671) at java.lang.Class.newInstance0(Class.java:321) at java.lang.Class.newInstance(Class.java:303) メソッドシグネチャがさらに表示されていることがわかります。 実際のメソッドシグネチャは private PgasePdfTable getMonthData(int month, int year, Collection dayTypes, Collection calendarDays, HashMap …

3
プログラムを中断せずにPythonで警告を発生させる
プログラムをクラッシュ/停止/中断させずに、Pythonで警告を発生させようとしています。 次の簡単な関数を使用して、ユーザーがゼロ以外の数値を渡したかどうかを確認します。その場合、プログラムは警告を発しますが、通常どおり続行します。これは、下記のコードのように動作するはずですが、このクラスを使用する必要がありWarning()、Error()またはException()代わりに、手動で警告をプリントアウトします。 def is_zero(i): if i != 0: print "OK" else: print "WARNING: the input is 0!" return i 以下のコードを使用して関数に0を渡すと、プログラムがクラッシュし、値が返されません。代わりに、プログラムを正常に続行させ、関数に0を渡したことをユーザーに通知するだけです。 def is_zero(i): if i != 0: print "OK" else: raise Warning("the input is 0!") return i unittestでテストして警告がスローされたことをテストできるようにしたい。メッセージを出力するだけでは、単体テストでassertRaisesを使用してテストすることはできません。

25
Android、ListView IllegalStateException:「アダプターのコンテンツは変更されましたが、ListViewは通知を受け取りませんでした」
私がやりたいこと:結果が計算されている間に、ListViewコンテンツを計算し、ListViewを部分的に更新するバックグラウンドスレッドを実行します。 私が回避しなければならないことを知っています:バックグラウンドスレッドからListAdapterの内容をいじることはできないので、onProgressUpdateからAsyncTaskを継承し、結果をパブリッシュ(アダプターにエントリを追加)します。私のアダプターは結果オブジェクトのArrayListを使用し、それらのarraylistのすべての操作が同期されます。 他の人の研究:ここには非常に貴重なデータがあります。また、約500人のユーザーのグループでほぼ毎日クラッシュすることもありlist.setVisibility(GONE)/trackList.setVisibility(VISIBLE)、onProgressUpdateにブロックを追加すると、クラッシュが10分の1に低下しましたが、消えることはありませんでした。(回答で提案されました) 私が時々得たもの:気づいてください、それは本当にまれにしか起こりません(3.5kユーザーの1人に1週間に1回)。しかし、私はこのバグを完全に取り除きたいと思います。ここに部分的なスタックトレースがあります: `java.lang.IllegalStateException:` The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread. [in ListView(2131296334, class android.widget.ListView) with Adapter(class com.transportoid.Tracks.TrackListAdapter)] at android.widget.ListView.layoutChildren(ListView.java:1432) at android.widget.AbsListView.onTouchEvent(AbsListView.java:2062) …

4
ArrayViewOutOfBoundsExceptionと、ListViewの複数のビュー用のカスタムAndroidアダプター
リストの各アイテムは異なるビュー(リンク、トグル、またはラジオグループ)を持つことができるため、ListViewのカスタムアダプターを作成しようとしていますが、ListViewを使用するアクティビティを実行しようとすると、エラーが発生し、アプリが停止します。アプリケーションは、Android 1.6プラットフォームを対象としています。 コード: public class MenuListAdapter extends BaseAdapter { private static final String LOG_KEY = MenuListAdapter.class.getSimpleName(); protected List<MenuItem> list; protected Context ctx; protected LayoutInflater inflater; public MenuListAdapter(Context context, List<MenuItem> objects) { this.list = objects; this.ctx = context; this.inflater = (LayoutInflater)this.ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public View getView(int position, View convertView, ViewGroup parent) …

5
AccessViolationExceptionの処理方法
.netアプリケーション内からCOMオブジェクト(MODI)を使用しています。私が呼び出しているメソッドはSystem.AccessViolationExceptionをスローしますが、これはVisual Studioによってインターセプトされます。奇妙なことに、AccessViolationException、COMException、その他すべてのハンドラーがあるトライキャッチに呼び出しをラップしましたが、Visual Studio(2010)がAccessViolationExceptionをインターセプトすると、デバッガーはメソッド呼び出し(doc.OCR)で中断します。そして、一歩進んだ場合、catchブロックに入るのではなく、次の行に進みます。さらに、これをビジュアルスタジオの外で実行すると、アプリケーションがクラッシュします。COMオブジェクト内でスローされるこの例外をどのように処理できますか? MODI.Document doc = new MODI.Document(); try { doc.Create(sFileName); try { doc.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH, false, false); sText = doc.Images[0].Layout.Text; } catch (System.AccessViolationException ex) { //MODI seems to get access violations for some reason, but is still able to return the OCR text. sText = doc.Images[0].Layout.Text; } catch (System.Runtime.InteropServices.COMException ex) { …
185 c#  .net  exception  com  modi 

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