例外処理で登場するtry{}文の実行とcatch{}文の実行はセットになっています
ソーラー「さて
最終コーナーに差し掛かりました
今日は
例外処理について学んでみましょう
例外処理のプログラムには
try{}文と
catch{}文が登場することになります
try{}文が実行されると
catch{}文が実行されるという仕組みになっています
それでは
実際に
例外処理のプログラムを観察してみましょう
👇
#include <iostream>
using namespace std;
int main() {
int a;
cout << "0を入力してね" << "\n";
cin >> a;
try {
if (a != 0)throw "のおおん";
}
//👆ここです😊
catch (char* err) {
cout << err <<"\n";
}
//👆ここです😊
return 0;
}
ビルド実行結果
0を入力してね
6(6を入力すると)
のおおん
ソーラー「このプログラムでは例外処理というものが行われています
try{}文の部分は
try {
if (a != 0)throw "のおおん";
}
で
catch{}文の部分は
catch (char* err) {
cout << err <<"\n";
}
となります
このプログラムでは
まず
cout << "0を入力してね" << "\n";
の実行により
コマンドプロンプト画面に
0を入力してね
が表示されます
次に
cin >> a;
が実行されると
コマンドプロンプト画面上で
何かをキーボードから入力するよう促されます
ここで
0でなく
6を入力したとします
すると
int型の変数aに
6が代入されることになりますね
すると
条件式
a != 0
が成立します(真の値1を持ちます)
すると
try {
if (a != 0)throw "のおおん";
}
の{}ブロックのなかの命令文
if (a != 0)throw "のおおん";
が実行されることになります
if (a != 0)throw "のおおん";
が実行されると
文字列データ "のおおん"
が
続くcatch{}文
👇
catch (char* err) {
cout << err <<"\n";
}
の
char* errに代入されることになります
char*型の変数 err
に
文字列データ "のおおん"が
throw(投げられた)
というわけです
すると
あるメモリに
文字列データ "のおおん"は格納されることになるのですが
その
文字列データ "のおおん"を格納している連続したメモリの
先頭のメモリのアドレスが
char*型のポインタ変数err
に格納されることになります
try{}文が実行されたときのみ
catch{}文が実行されることになるのですが
このプログラムの場合は
try{}文
つまり
if (a != 0)throw "のおおん";
が実行されることになったので
catch{}文
つまり
catch (char* err) {
cout << err <<"\n";
}
が実行されることになります
その結果
コマンドプロンプト画面に
のおおん
が表示されることになります
もし
キーボードから0が入力されて
int型の変数aに0が格納された場合は
a==0
が成立し
a !=0
が成立しないので(偽の値0をもつので)
try{}文
つまり
try{
if (a != 0)throw "のおおん";
}
が実行されることはないので
catch{}文
catch (char* err) {
cout << err <<"\n";
}
が実行されることはありません
ですので
コマンドプロンプト画面には
何も表示されないことになります
その時のプログラムはこちらです
👇
#include <iostream>
using namespace std;
int main() {
int a;
cout << "0を入力してね" << "\n";
cin >> a;
try {
if (a != 0)throw "のおおん";
}
catch (char* err) {
cout << err << "\n";
}
return 0;
}
ビルド実行結果
0を入力してね
0(0を入力しました)
ソーラー「このように
try{}文の実行とcatch{}文の実行はセットになっています
0以外の
文字が入力されるという
例外的なことが行われたとき
その例外的なことに対する処理が行われているというわけですね」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます