作成日:2026/4/10,最終更新日:2026/4/10

JavaScript / TypeScriptの例外処理とデバッグについて

エラーへの対応方法と原因調査の基本をわかりやすく解説

この記事では、JavaScript / TypeScriptで重要な 例外処理デバッグ について詳しく解説します。
プログラムを書いていると、入力ミス・想定外の値・通信失敗・コードの書き間違いなど、さまざまな原因でエラーが発生します。


そうしたときに必要になるのが、エラーを安全に受け止める考え方と、原因を順番に調べる力です。
この記事では、try / catchthrowconsole.logdebugger などの基本を中心に、初学者の方にもわかりやすい形で整理していきます。


1. 例外処理とデバッグとは?

解説: 例外処理とは、プログラム実行中に起きた問題に対して、処理を止めずに安全に対応する仕組みのことです。
また、デバッグとは、エラーやバグの原因を調べて修正する作業全体を指します。




● どんな場面で必要?

  • ✅ ユーザー入力が想定どおりでない
  • ✅ 存在しないデータを使おうとした
  • ✅ JSONの形式が壊れていた
  • ✅ 通信や非同期処理に失敗した
  • ✅ 画面に何も出ない原因を調べたい

エラーを完全になくすことは難しいですが、起きたときにどう扱うかを知っておくと、プログラムはかなり安定します。


● 基本の考え方

console.log('処理開始');
// ここで何か問題が起きるかもしれない
console.log('処理終了');

問題が起きそうな場所を意識して、事前に確認する失敗したときの処理を書く原因を出力して調べることが大切です。


2. エラーの基本

解説: JavaScriptでは、コードに問題があるとブラウザのコンソールにエラーが表示されます。
まずは「どんな種類のエラーがあるか」をざっくり知っておくと理解しやすいです。




● よくあるエラーの例

console.log(userName); // userName が未定義

この場合は、ReferenceError になります。
変数名の書き間違いや、まだ宣言していない変数を使ったときによく出ます。


const user = null;
console.log(user.name);

このような場合は、TypeError が発生します。
nullundefined に対してプロパティ参照やメソッド実行をしたときによく見かけます。


● エラーメッセージで見るべきところ

  • ✅ エラーの種類
  • ✅ 何が問題かを示すメッセージ
  • ✅ 発生したファイル名と行番号

初学者のうちは難しく見えますが、まずは「どこで止まったか」を見るだけでも十分です。


3. try / catch の基本

解説: エラーが起こる可能性のある処理を安全に囲みたいときは、try / catch を使います。
try の中でエラーが発生すると、処理は catch に移ります。




● 基本構文

try {
  const data = JSON.parse('{"name":"Taro"}');
  console.log(data.name);
} catch (error) {
  console.log('エラーが発生しました');
  console.log(error);
}

これにより、エラーが起きてもその場で止まるだけではなく、代わりの処理を書けるようになります。


● 失敗したときの表示を分ける例

try {
  const user = JSON.parse(inputText);
  result.textContent = user.name;
} catch (error) {
  result.textContent = 'データの形式が正しくありません';
}

ユーザーにとっては、コンソールエラーだけよりも、画面上でわかるメッセージが出るほうが親切です。


● 実行例(デモ)

JSON文字列を読み込んで、成功時と失敗時の表示の違いを確認できます。

ここに結果が表示されます


4. throw の使い方

解説: throw は、自分で「ここはエラーとして扱いたい」と判断したときに使う構文です。
想定外の値が入ってきたときに、早めに異常へ気づけるようになります。




● 基本の例

function divide(a, b) {
  if (b === 0) {
    throw new Error('0では割れません');
  }

  return a / b;
}

このように書くことで、「計算はできないのにそのまま進んでしまう」状態を防げます。


● try / catch と組み合わせる

try {
  const result = divide(10, 0);
  console.log(result);
} catch (error) {
  console.log(error.message); // 結果 : 0では割れません
}

throw は、入力チェックや関数の安全性を高めたい場面でよく使われます。


5. console を使ったデバッグ

解説: デバッグの基本は、まず今の値がどうなっているか確認することです。
そのときに最もよく使うのが console 系のメソッドです。




● console.log()

const count = 3;
console.log(count);

最も基本的な出力方法です。変数の中身や処理の流れを確認したいときに使います。


● console.table()

const users = [
  { id: 1, name: 'Taro' },
  { id: 2, name: 'Hanako' }
];

console.table(users);

配列やオブジェクトの一覧を見たいときは、console.table() が見やすくて便利です。


● console.error()

try {
  throw new Error('想定外のエラーです');
} catch (error) {
  console.error(error);
}

エラーを目立たせたいときは、console.error() を使うと見分けやすくなります。


6. debugger の基本

解説: 値の流れをもっと丁寧に追いたいときは、debugger を使う方法があります。
ブラウザの開発者ツールを開いた状態で debugger が実行されると、その場所で処理が一時停止します。




● 基本の例

const price = 1200;
const tax = 0.1;
const total = price + price * tax;

debugger;
console.log(total);

一時停止した状態で、変数の値や処理の順番を確認できます。
「どこで値がおかしくなったのか」を探すときにとても便利です。


● どんなときに使う?

  • ✅ 条件分岐のどちらに入ったか確認したい
  • ✅ ループの途中で値が変わる様子を見たい
  • ✅ オブジェクトの中身を1つずつ確認したい

まずは console.log()、必要なら debugger という順で使い分けるとわかりやすいです。


7. 実務でよくある例

解説: ここでは、例外処理とデバッグが実際にどんな場面で役立つのかを見てみましょう。
実務では、事前チェックエラー表示原因調査 を組み合わせることが多いです。




● APIレスポンスの形式が想定と違う

try {
  const user = data.user;

  if (!user) {
    throw new Error('user が存在しません');
  }

  console.log(user.name);
} catch (error) {
  console.error(error.message);
}

● 入力値が空のまま送信されそう

const name = input.value.trim();

if (name === '') {
  console.log('未入力です');
}

● 配列の中身をまとめて確認したい

const items = [
  { id: 1, title: 'りんご' },
  { id: 2, title: 'みかん' }
];

console.table(items);

このように、エラーが起きてから慌てるのではなく、途中の値を確認しながら原因を絞っていくのがデバッグの基本です。


8. よくある注意点

解説: 例外処理やデバッグは便利ですが、使い方を間違えると原因が見えにくくなることがあります。
基本的な注意点を押さえておきましょう。




● catch で握りつぶしすぎない

try {
  riskyProcess();
} catch (error) {
  console.log('失敗しました');
}

これだけだと、何が原因だったのか見えにくくなります。
少なくとも開発中は error の内容を確認する癖をつけると安心です。


● console.log() を本番用コードへ残しすぎない

デバッグ用の出力が多すぎると、必要な情報が埋もれたり、コードが読みにくくなったりします。
確認が終わったら整理する意識も大切です。


● まずは小さく切り分ける

エラーの原因がわからないときは、いきなり全部を見ようとせず、入力値条件分岐返り値 などを順番に分けて確認していくと見つけやすいです。


9. まとめ

例外処理とデバッグは、JavaScript / TypeScriptで安定したコードを書くために欠かせない基本です。
エラーが出たときに止まってしまうのではなく、どう受け止めて、どう調べるかがとても大切です。


● 本記事のポイント

  • try / catch でエラーを安全に扱える
  • throw で自分で異常を検知できる
  • console.log()console.table() は基本の調査手段
  • debugger を使うと処理を止めて詳しく確認できる
  • 原因がわからないときは、小さく切り分けて確認するのが大切

● 次への導線

例外処理とデバッグに慣れてきたら、次は次のようなテーマにも進みやすくなります。

  • fetch と組み合わせた非同期処理のエラー対応
  • 正規表現 を使った入力チェック
  • localStorage やフォーム処理での実践的な検証

最初は難しく感じても、「値を見る」「どこで止まったか見る」「小さく試す」を繰り返すだけで、デバッグはかなりやりやすくなります。