問題タブ [assert]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
8 に答える
47691 参照

python - Python の assert に、選択した例外をスローさせる

assertの代わりに選択した例外をスローすることはできますかAssertionError?

アップデート:

私の動機を説明します。これまで、私は独自の例外を発生させるアサーション スタイルのテストを行ってきました。たとえば、Node特定の引数でオブジェクトを作成すると、引数がノードの作成に適しているかどうかがチェックされ、そうでない場合は が発生しNodeErrorます。

しかし、Python にはアサートをスキップするモードがあることは知ってい-oます。プログラムを高速化するために、このモードを使用できるようにしたいと考えています。しかし、私はまだ独自の例外を持ちたいと思っています。そのため、私は独自の例外で assert を使用したいと考えています。

0 投票する
9 に答える
319931 参照

c++ - 「アサート」機能とは何ですか?

assert私は OpenCV のチュートリアルを研究してきましたが、この関数に出くわしました。それは何をするためのものか?

0 投票する
2 に答える
364 参照

asp.net - asp.netアサートに例外をスローさせますか?

私のアサートはメッセージ ボックスを生成しません。メッセージをデバッグ出力に送信し、より積極的な通知を行わずにスレッドを終了することがあります。すべての Debug.Assert を強制的にスローするようにするにはどうすればよいですか?

0 投票する
4 に答える
3553 参照

java - junit4にdouble[]のAssert.assertArrayEquals()がないのはなぜですか?

Assert.assertArrayEquals()Junit4には、double以外のすべてのプリミティブのメソッドがあるようです。

だがしかし

また

(後者はdoubleの可変範囲を説明するため)。そのような関数を書いてはいけない根本的な理由はありますか?

0 投票する
4 に答える
12173 参照

c++ - 別のDLLに割り当てられたメモリを解放する

別のDLLファイルを使用しているDLLファイルを使用したEXEファイルがあります。この状況が発生しました:

DLLファイル1:

DLLファイル2:

リリースモードでは、すべてが正常に機能します。しかし、デバッグモードではstd::strings、フォルダーベクトル内のいずれかのデストラクタでアサーションエラーが発生します(フォルダーがaFunctionの最後でスコープ外になる場合)。

dbgheap.c : line 1274

これは、メモリがDLLファイル1のヒープに割り当てられているが、DLLファイル2で解放されているためだと思います。

のコメントdbgheap.cは、これが問題であるとかなり主張しているようです。

無視すればうまくいくように見えるのに、なぜこれがこのような問題なのですか?これを行うためのアサーションに失敗しない方法はありますか?

0 投票する
3 に答える
182 参照

python - 数値 Python コードで引数をチェックする

数を計算するために、いつも同じ引数チェック コードを書いていることに気が付きました。

より良い方法はありますか?これらのことには「アサート」を使用しないように言われました (ただし、エラーの原因となった変数の値がわからないことを除けば、問題はわかりません)。

編集:明確にするために、引数は通常単なる数値であり、エラーチェック条件は複雑で自明ではない可能性があり、後で例外につながるとは限りませんが、単に間違った結果になります。(不安定なアルゴリズム、無意味なソリューションなど)

0 投票する
8 に答える
74124 参照

c++ - static_assert は何をしますか? また、何に使用しますか?

static_assert(...)('C++11') が手の問題をエレガントに解決する例を教えてください。

私はランタイムに精通していassert(...)ます。static_assert(...)通常よりも優先するのはいつassert(...)ですか?

また、 にboostというものがありますがBOOST_STATIC_ASSERT、 と同じstatic_assert(...)ですか?

0 投票する
7 に答える
12094 参照

python - Python の基本的な最適化モードの用途は何ですか? (python -O)

-OPython には、インタープリターを実行できるフラグがあります。このオプションは「最適化された」バイトコード (.pyo ファイルに書き込まれる) を生成し、2 回指定すると、docstring を破棄します。Python の man ページから:

-O 基本的な最適化をオンにします。これにより、コンパイル済み (バイトコード) ファイルのファイル名拡張子が .pyc から .pyo に変更されます。2 回指定すると、docstring が破棄されます。

このオプションの 2 つの主要な機能は次のとおりです。

  • すべての assert ステートメントを取り除きます。これは、破損したプログラム状態に対する防御と速度を交換します。しかし、違いを生むために大量の assert ステートメントが必要ではないでしょうか? これが価値のある(そして正気の)コードはありますか?

  • すべての docstring を取り除きます。メモリ使用量が非常に重要で、これが成功するアプリケーションはどれですか? すべてを C で書かれたモジュールに入れてみませんか?

このオプションの用途は何ですか? それは現実世界の価値を持っていますか?

0 投票する
6 に答える
5999 参照

c - Cコンパイル時-定数配列を使用したアサーション

コンパイル時に初期化される非常に大きな定数配列があります。

配列が正しく初期化されていることを確認したいのですが、次のようになります。

私の問題は、コンパイル時にこれを確認したいということです。このスレッドのCでのコンパイル時のアサートについて読みました:Cコンパイラがアサートします。ただし、そこで提供されるソリューションは、コンパイルエラーのサイズとして負の値を使用して配列を定義することを提案しています。

と使用:

定数配列の値を確認する必要があり、Cでは定数配列の値を使用して配列を初期化できないため、提供されたソリューションは機能しません。

それを回避する方法はありますか?他のコンパイル時のアサート?