問題タブ [overflowexception]
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.
.net - NHibernate および Oracle SDO_ORDINATE_ARRAY での OverflowException
NHibernate を使用して Oracle データベースから SDO_ORDINATE_ARRAY をクエリしようとすると、OverflowException が発生します。
クラスのpublic static unsafe object GetValue(OracleConnection con, IntPtr pUdt, int attrIndex)
メソッド内の Oracle.DataAcess で例外がスローされます。OracleCustomTypeBase<T>
調査の結果、これは、Oracle が .NET よりも高い精度を 10 進値に使用しているため、DB から値を取得してネイティブの .NET 型に変換するときにクラッシュするという事実に起因するように思われることがわかりました。
OracleDecimal
オブジェクトを取得し、精度を設定してからValue
プロパティを取得する (.NET 10 進数を返す)ようにコードを変更しようとしましたが、うまくいきませんでした。
この問題を解決するにはどうすればよいですか? DUAL
SDO_ORDINATE_ARRAY をストアド プロシージャから、または偽のテーブルから選択して取得するため、カスタム型のマッピングを指定できないことに注意してください。
ご不明な点がございましたら、喜んでお答えいたします。
c# - SqlDateTime オーバーフロー例外 (yyyy-mm-dd から sqldatetime へ)
日付形式の文字列 (yyyy-MM-dd) を抽出し、それをに変換してDateTime
、ストアド プロシージャを使用してデータベースに挿入しています。しかし、私は得続けます
System.Data.SqlTypes.SqlTypeException: SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.
私のテーブルの列のタイプはdate
です。
2016-01-15
呼び出して文字列 (例: ) を変換し、DateTime.ParseExact(expirationDate, "yyyy-MM-dd", null)
その値を取得してそれをパラメーターとして StoredProcedure に挿入し、proc を実行します。
しかし、デバッガーを使用すると、戻り値が実際にはフォーマットされたyyyy-MM-dd HH:mm:ss
DateTime であることがわかります。
これは、コードがどのように見えるかの例です
python - Python 例外のエラー番号の意味
OverflowError
ばかげた計算の後でPython をキャッチして、エラーをチェックしargs
たところ、最初の座標として整数を含むタプルであることがわかりました。これは何らかのエラー番号 ( errno
) だと思います。ただし、ドキュメントやリファレンスは見つかりませんでした。
例:
34
この文脈で何を意味するか知っていますか?この例外の可能性のある他のエラー番号を知っていますか?
c# - 算術チェック文をどこに置くか?
操作でオーバーフロー例外を強制的にスローする方法について読んでいますが、「自分で試してください」セクションで、本とは別の場所にありました。checked
キーワードの根底にあるメカニズムがよくわからないので、どちらかのスポットに関連するパフォーマンスの問題があるかどうか興味があります.
この本の例では階乗を行っていましたが、符号なし long であってもすぐにオーバーフローがスローされます。これは私が思いついたコードです:
しかし、本の裏にある回答ページを見ると、とchecked
を含む関数の本体全体が で囲まれていました。明らかに、それらの場所で必要になることは決してないので、どちらかといえば、ループを でラップするだけです。return
long result = 1;
for
check
ループ内に存在すると、基になる CLR コードが繰り返し生成されますか? (for ループに入る前に変数を宣言する理由のように。) または、ループ内に変数を持っているオーバーヘッドはありませんか?
sql-server - SQL Server 2012 におけるアプリケーション起動型データ型オーバーフロー セキュリティの脆弱性
簡単な説明:
不適切なアプリケーション検証により、無効なデータが SQL Server 2012 で実行される SQL 更新ステートメントに渡され、アプリケーションによって処理されないサーバー側エラーが発生します。データベースのセキュリティの観点から、これが悪用される可能性はありますか?
バックグラウンド:
私はフルタイムのセキュリティ専門家ではなく、セキュリティ関連の質問があり、できれば簡単な答えが得られることを願っています。「ブラック ボックス」アプローチを使用した「既製品」の Web アプリケーションの潜在的なセキュリティの脆弱性を調査していて、懸念の原因に遭遇しました。アプリケーションは、いくつかの nvarchar フィールドのデータ入力の長さの検証に失敗したようで、入力データを直接データベースに渡します。データがデータ型の長さ制限に違反している場合でも、アプリケーションはすべてが正常にコミットされたと主張します。書き込みを試みるとサーバー側でエラーが発生し、データがデータベースにコミットされないため、これはアプリケーションの検証のみに基づくステートメントであり、データベースからの戻り情報ではないようです。
質問:
無効な SQL 挿入ステートメントから入力データが失われるという明らかな問題を超えて、SQL Server レベルでのデータ型の長さのオーバーフローを悪用して、データベースの読み取りまたは書き込みを行ったり、後続の処理を妨げるメモリ ホギング ループを作成したりできますか?リクエスト?
さまざまなプログラミング言語で、バッファ メモリ オーバーフローが悪用されてアプリケーション レベルでコードが実行される (「スタックを壊す」) 可能性があることを認識しており、SQL Server レベルでの実行が制御されてエラーが発生するだけなのか疑問に思っていました。 SQL Serverレベルでの検証から、または追加のコマンドなどを何らかの方法で含めることができれば、; DELETE FROM USERS;
追加の懸念の原因になる可能性があります。
追加情報が必要な場合はお知らせください。これに関する広範なドキュメントがあると思いますが、かなりの検索を行った後、Google または他のスタックの回答から必要なものを見つけることができませんでした。おそらく、答えは単に「SQL Server 2012 には、これを防止するための適切な内部検証がある」ということです。私を正しい方向に向けてください。ありがとうございました!
vb.net-2010 - 算術例外
私はプログラミング高校のコースにいて、OverflowException または NotFiniteNumberException を使用するプログラムを作成することを割り当てられています。それは算術的でなければならず、考えられることはすべて試しましたが、正しく印刷できないように見えるので、問題は私のコードにあると思います。これは私が試したことの1つです:
モジュール Module1
エンドモジュール
これを行うと、エラー メッセージが表示されますが、「B が最大値を超えています」ではなく、「未処理の例外」と表示されます。明らかに、なぜこれを行うのかはわかりません。そのため、情報は大きな助けになります。NotFiniteNumberException を使用してそれを作成する方法を提案する方が簡単であれば、私が試したことを示したいと思いました。ありがとう!
c# - int.MinValue を -1 で割ると、未チェックのコンテキストで OverflowException がスローされるのはなぜですか?
2 行目でOverflowException
. unchecked
これは防げないのでしょうか?
例えば:
例外は発生しません。