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

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

3
複数のエラークラスをルビーのレスキュー句にDRY方式で渡す
Rubyで複数の種類の例外を救済する必要があるコードがいくつかあります。 begin a = rand if a > 0.5 raise FooException else raise BarException end rescue FooException, BarException puts "rescued!" end 私がしたいことは、どこかで救済したい例外タイプのリストを何らかの方法で保存し、それらのタイプを救済句に渡すことです: EXCEPTIONS = [FooException, BarException] その後: rescue EXCEPTIONS これは可能ですか、そして本当にハックのような呼び出しがなくても可能evalですか?TypeError: class or module required for rescue clause上記のことを試してみたとき、私は望んでいませんでした。
100 ruby  exception  rescue 


8
Task.WhenAllがAggregateExceptionをスローしないのはなぜですか?
このコードでは: private async void button1_Click(object sender, EventArgs e) { try { await Task.WhenAll(DoLongThingAsyncEx1(), DoLongThingAsyncEx2()); } catch (Exception ex) { // Expect AggregateException, but got InvalidTimeZoneException } } Task DoLongThingAsyncEx1() { return Task.Run(() => { throw new InvalidTimeZoneException(); }); } Task DoLongThingAsyncEx2() { return Task.Run(() => { throw new InvalidOperation();}); } …


14
std :: exceptionから継承する必要がありますか?
少なくとも1つの信頼できるソース(私が採用したC ++クラス)で、C ++のアプリケーション固有の例外クラスがから継承することを推奨しているのを見てきましたstd::exception。このアプローチの利点ははっきりしません。 C#から継承する理由ApplicationExceptionは明らかです。便利なメソッド、プロパティ、コンストラクターをいくつか取得し、必要なものを追加またはオーバーライドするだけです。ではstd::exception、それあなたが得るすべてであると思わwhat()あなただけのようにも自分で作成することができオーバーライドする方法。 それではstd::exception、アプリケーション固有の例外クラスの基本クラスとして使用することにはどのような利点がありますか?継承しない理由はありますstd::exceptionか?

6
IllegalArgumentExceptionがスローされるのはいつですか?
これは実行時の例外であることが心配なので、控えめに使用する必要があります。 標準的な使用例: void setPercentage(int pct) { if( pct < 0 || pct > 100) { throw new IllegalArgumentException("bad percent"); } } しかし、それは次の設計を強制するようです: public void computeScore() throws MyPackageException { try { setPercentage(userInputPercent); } catch(IllegalArgumentException exc){ throw new MyPackageException(exc); } } チェック済みの例外に戻すには。 さて、それで行こう。不正な入力をすると、ランタイムエラーが発生します。したがって、最初にこれを実際に均一に実装するのはかなり難しいポリシーです。これは、正反対の変換を行わなければならない可能性があるためです。 public void scanEmail(String emailStr, InputStream mime) { try { …

3
Pythonの例外ハンドラのコスト
で別の質問、受け入れ答えは、パフォーマンスを向上させるために、try / exceptブロックでPythonコードにif文(非常に安い)の交換を提案しました。 コーディングスタイルの問題は別として、例外がトリガーされないと仮定すると、例外ハンドラーがある場合とない場合と比較してゼロに比較するifステートメントがある場合と、例外ハンドラーがある場合とでは、パフォーマンスにどの程度の違いがありますか?

8
トラブルシューティング「関連フィールドのルックアップが無効です:icontains」
私は次のモデルを持っていますmodels.py: class ListinoTraduttore(models.Model): traduttore = models.ForeignKey('Traduttore', related_name='Traduttore') linguaDa = models.ForeignKey(Lingua, related_name = "linguaDa") linguaA = models.ForeignKey(Lingua, related_name = "linguaA") prezzoParola = models.CharField(max_length=50, blank=True) prezzoRiga = models.CharField(max_length=50, blank=True) scontoCat = models.CharField(max_length=50, blank=True) scontoFuzzy = models.CharField(max_length=50, blank=True) scontoRipetizioni = models.CharField(max_length=50, blank=True) class Meta: verbose_name_plural = "Listini Traduttori" def __unicode__(self): return u"%s Da …


1
JavaScriptで「throw」の後に「return」する必要がありますか?
以下のように、私は自分のErrorメソッドから早期に終了したいものをスローしています: // No route found if(null === nextRoute) { throw new Error('BAD_ROUTE'); } 私のreturn;後にステートメントを置く必要がありthrowますか?それは今のところ私にとってはうまくいきます。それが不必要な場合は、入れたくないのですが、別のブラウザーで何ができるのかわかりません。

4
Rubyカスタムエラークラス:メッセージ属性の継承
カスタム例外クラスに関する情報があまり見つからないようです。 私が知っていること カスタムエラークラスを宣言し、それをから継承させるStandardErrorことができるため、次のようになりますrescue。 class MyCustomError < StandardError end これはあなたがそれを使ってそれを上げることを可能にします: raise MyCustomError, "A message" 後で、救助時にそのメッセージを受け取ります rescue MyCustomError => e puts e.message # => "A message" 私の知らないこと いくつかのカスタムフィールドを例外にしたいがmessage、親クラスから属性を継承したい。例外クラスのインスタンス変数ではないこのトピックを読ん@messageだので、継承が機能しないのではないかと心配しました。 誰か私にこれの詳細を教えてもらえますか?object属性を使用してカスタムエラークラスを実装するにはどうすればよいですか?次は正しいですか: class MyCustomError < StandardError attr_reader :object def initialize(message, object) super(message) @object = object end end その後: raise MyCustomError.new(anObject), "A message" 取得するため: rescue MyCustomError …


30
Eclipse-java.lang.ClassNotFoundException
JUnit-TestをEclipseから開始しようとすると、「ClassNotFoundException」が発生します。コンソールから「mvn test」を実行すると-すべて正常に動作します。また、Eclipseでは問題は報告されていません。 私のプロジェクト構造は次のとおりです: 親プロジェクト(pom-packaging) Webプロジェクト(war-packaging-私のJUnit-testはここにあります) Flexプロジェクト 構成プロジェクト 編集:クラスが見つからないのはなぜですか?これは、特別なライブラリのない単純なHelloWorldアプリケーションです。 これが私のJUnitの実行構成です: 代替テキストhttp://www.walkner.biz/_temp/runco​​nfig.png Testclass(しかし、私が言ったように、単純なHelloWorldでは動作しません...): import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import biz.prognoserechnung.domain.User; import biz.prognoserechnung.domain.UserRepository; import biz.prognoserechnung.domain.hibernate.UserHibernateDao; public class UserDaoTest { /** * the applicationcontext. */ private ApplicationContext ctx = null; /** * the user itself. */ private …

4
キャッチ付きのtryブロック内にreturnが表示されないのはなぜですか?
以下は大丈夫です: try { Console.WriteLine("Before"); yield return 1; Console.WriteLine("After"); } finally { Console.WriteLine("Done"); } finallyブロックは、全部の実行が終了したとき(実行さIEnumerator<T>担体はIDisposable、それが終了する前に、列挙が放棄された場合でも、これを確実にするための方法を提供します)。 しかし、これは大丈夫ではありません: try { Console.WriteLine("Before"); yield return 1; // error CS1626: Cannot yield a value in the body of a try block with a catch clause Console.WriteLine("After"); } catch (Exception e) { Console.WriteLine(e.Message); } (議論のために)WriteLinetryブロック内の呼び出しのいずれかによって例外がスローされたと仮定します。catchブロックで実行を続けることの問題は何ですか? もちろん、yield return部分は(現在のところ)何もスローすることができませんが、なぜそれが原因で、try/のcatch前または後にスローされた例外を処理するための囲み/ …

4
CacheProviderの例外NoClassDefFoundError
私はSpringとhibernateの初心者なので、Tomcatを起動しているときに、Spring 3 + hibernate 4に基づいた簡単なWebアプリケーションを実装しようとしています。この例外があります。 java.lang.NoClassDefFoundError: org/hibernate/cache/CacheProvider at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2427) at java.lang.Class.getDeclaredMethods(Class.java:1791) ... Caused by: java.lang.ClassNotFoundException: org.hibernate.cache.CacheProvider at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523) このクラスがhibernate 3のhibernate-coreにあることがわかりましたが、hibernate 4では見つかりませんでした。 永続化のための私のcontext.xmlの一部: <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="org.hsqldb.jdbcDriver"/> <property name="url" value="jdbc:oracle:thin:@IP_Address:SID"/> <property name="username" value="xxx"/> <property name="password" value="xxx"/> <property name="initialSize" value="5"/> <property name="maxActive" value="20"/> </bean> <bean …

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