プログラムを実行する際にエラーが起こることがあります。通常はエラーが起こった際、そこでプログラムは止まりますが、エラーが起こってもプログラムに止まって欲しくない場合もあります。今回はその際に用いる構文について紹介します。
例外処理とは
例外処理とは、プログラムに異常が発生した場合に現在の処理を中断し、別の処理を行わせる処理のことをいいます。
例題処理の際に用いる構文
try-catch文
try-catch文は try{処理A}catch(e){処理Aでエラーが起きた際に行う処理} という形で記載します。引数eにはエラーメッセージが格納されます。
JavaScript
try {
//処理A
} catch (e) {
//処理Aでエラーが起きた際に行う処理
}JavaScript
try {
console.log(name);
} catch (e) {
console.log('エラーが発生しました');
}出力結果
JavaScript
エラーが発生しました変数nameを定義していないので本来エラーになるはずですが、エラー時の例外処理をcatchブロックの中に記載しているのでそちらが処理されております。
finally文
finally文は try{処理A}catch(e){処理Aでエラーが起きた際に行う処理} finally{最後に実行を行う処理} という形で記載します。finally ブロックは例外が発生するかどうかにかかわらず実行され、例外が発生した場合、finally ブロックは例外を処理する catch ブロックがなくても実行されます。
JavaScript
try {
console.log(name);
} catch (e) {
console.log('エラーが発生しました');
} finally {
console.log('最後の処理を実行しました');
}出力結果
JavaScript
エラーが発生しました
最後の処理を実行しました上記の様に、catchブロック内の処理が実行された後に、finallyブロック内の処理が実行されます。
throw文
throw文は「throw 発生させる例外の式;」という形で記載します。
JavaScript
let point = 1;
try {
if (point < 50){
throw '不合格です';
};
console.log('合格です');
} catch(e) {
console.error(e);
}出力結果
JavaScript
不合格です例題
以下コードの出力値はどれか
JavaScript
let number = 100;
try {
if (point < 80){
throw '不合格です';
};
console.log('合格です');
} catch(e) {
console.error(e);
}- ReferenceError: point is not defined
- ReferenceError: number is not defined
- 合格です
- 不合格です
回答
1. ReferenceError: point is not defined
変数pointは定義されていないので、エラーメッセージがeに格納され、console.error(e)にてエラーが出力されるため。
