通常は正常に機能し、しばらく本番環境にあるコードをデバッグしようとしていますが、特定のケースの実行に関連するエラーがいくつかあります。
「Guarantee」というクラスと、そのクラスの変数/オブジェクト「myDem」があります。このクラスには、「NumberOfGuaranteeDays」という関連関数があります。以下の最初の画像は、「myDem」でのこの関数呼び出しに割り当てられている「numRows」という名前の Long 変数を示しています。この割り当てが行われると、つまり "NumberOfGuaranteeDays" 関数が呼び出されると、オーバーフロー エラーが発生します。
関数呼び出し「NumberOfGuaranteeDays」が実行された後、これは多くのサブ関数自体を含むかなり複雑な呼び出しであり、クラスはそれ自体を終了しようとし、値 (整数である日数... この場合は32561 です)。エラーが発生するのは、この終了ステップと値 32561 への「numRows」の割り当て中です。
ここでは、コード内の次のステップでエラー メッセージが返されることを簡単に示します。
最後に、"numRows" に割り当てられた値が 32561 であり、Long に適切に割り当てることができる Integer 型であることを "証明" したかったのです。ウィンドウのウォッチ部分の右端にある値「res」は、「NumberOfGuaranteeDays」呼び出しから返された値であり、変数「numRows」に割り当てられます。
私が知る限り、クラッシュが発生する理由として 2 つの可能性しかありません。
- クラスを終了しようとしてエラーが発生しました。ただし、これが「オーバーフロー」エラーにつながる可能性があることを理解していません。
- 「NumberOfGuaranteeDays」から計算された値の変数「numRows」への割り当てにエラーがあります。この種の代入では、オーバーフローが発生する可能性がありますが、この場合はそうではありません。32561 に設定された「res」整数である「NumberOfGuaranteeDays」からの戻り値は、Long である「numRows」に割り当てられます。
ですから、私が想像できるこれらの可能性はどちらも意味をなさないので、私には見えない別の可能性があるに違いないと思います. 助けてくれてありがとう!
手順を理解するために重要なことの多くは、デバッグ段階のどこにいるかの「証拠」を見ることであるため、コードとして記述する代わりに、切り取りと貼り付けを行った画像を挿入することにしました。実際のコード スニペットが役立つ場合は、お知らせください。
Thank you!
Mike