【VB.Net】0 除算に関するエラーについてさらっと紹介~例外処理について学ぶ~

どうも!リョクちゃです。

今回は、除算エラーの中でも0除算エラーについてさらっと紹介していきます。

プログラムを組んでいて、数字を取り扱うエラーは多くあります。

その中でもまずは簡単に、0除算に関して、エラーのキャッチの仕方、

エラーが出てもアプリケーションの処理を止めない方法を簡単に伝授します。

ちなみに前回はこちら、

動的にコントロールの追加はできたけど、どうやったらイベントを呼び出すことができるの?またどうやって使ったらいいの?と悩まれていませんか?今回は、TableLayoutPanel上に動的に配置したコントロールのイベントを呼び出す方法について紹介します。



目次

0除算エラー

数値を除算する際に0で除算した時に発生するエラーのことを指します。

例)

10 / 0 = ?

この時にエラーが発生します。

※プログラムやExcelで行おうとしたときに発生します。

学生時代に算数で習ったときには、おそらく

10/ 0 の答えは、0であると習ったのではないでしょうか?

これに関しては、一昔前に9 ÷ 0 = 0というキーワードで

ネット上で議論が巻き起こっていたみたいです。

気になる方は、こちら

結論からいうと、 10 / 0 = 0ではなく、計算ができないというのが、

一応の正解となるそうです。

これに関しては、個人が何が正しいのかを取捨する必要があると思いますので、

個人がそれぞれの正解を頭の片隅に思っておけば、良いと思います。

さて、話は脱線しましたが、

プログラムでは、10 / 0 の答えは除算エラーになります。

エラーをつかむ

実際に除算エラーを起こしてみると、コードでは下のようになります。

実行してみると……

あれ?

お気づきになられたでしょうか?

エラーが出ずに、すんなりと通ってしまいました。

実際にresultに代入された答えを確認してみると……

Infinity……インフィニティ

つまりという結果になってしまいます。

エラーにならないじゃん?!

これに関して、調べてみました。



VB.Netで0除算エラーを起こすには?

結論から言うと、エラーを起こすには、Integer型で分子と分母を宣言するのではなく、

Decimal型で分子と分母を宣言する必要があるみたいです。

気を取り直して、調べた結果を参考にコードを書いてみます。

これを実行すると、

エラーが発生しました。

内容としては、

System.DivideByZeroException: ‘0で除算しようとしました。’

というエラーが出て、0除算エラーが起きたのが確認できました。

このままではここで処理が止まってしまい、これ以降

何もできなくなってしまいます。

これをエラーをキャッチして、回避する方法を以降で触れていきます。

エラーをキャッチする

エラーの内容をキャッチするには、

Try~Catch~End Tryという例外処理の書き方をコード上に組み込みます。

書き方としては以下のようになります。

Tryブロックでは、エラーが起きる処理を書きます。

Catchブロックでは、エラーが起きた後の処理を書きます。

この際に、Catch ex As エラーの種類の種類には、

Tryブロックの処理で起きうるであろうエラーの種類を書きます。

エラーの種類がわからなければ、

Catch ex As Exception

という風に書きます。

0除算エラーの場合

Catch ex As DivideByZeroException

と書くことで、0除算エラーのみをキャッチすることができます。

ただし、他のエラーの場合はキャッチすることができないので、

他のエラーをキャッチしたい場合は、Catchブロックを更に作ります。

例えば、下のように

と、このような感じでエラーをキャッチして、エラー毎に何をさせたいか

後は処理を書いてあげれば、アプリケーションを途中で止めずに

処理を継続させることができます。

まとめ

0除算エラーをきっかけにエラーのキャッチの仕方を紹介していきました。

エラーをキャッチすることで、エラー毎に行わせたい処理を

書けるので活用してみてください。

エラーをキャッチするには

Try ~ Catch ~ End Try

これさえ覚えておけば、エラー(例外)に関する処理を組むことができます。

プログラミングを学んでみたいなら、こちら

全国50都市で開催したプログラミング講座がオンライン・無料開催【テックジム】

最後までお読みいただき、ありがとうございます。

・こちらの書籍を参考にVB.Net勉強しています。

スポンサーリンク