Skip to content

Commit

Permalink
2023/07/18 時点の英語版に基づき新規翻訳
Browse files Browse the repository at this point in the history
  • Loading branch information
mfuji09 committed Nov 5, 2023
1 parent 70c56ba commit db01b67
Showing 1 changed file with 82 additions and 0 deletions.
82 changes: 82 additions & 0 deletions files/ja/web/api/reporterror/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
---
title: reportError() グローバル関数
short-title: reportError()
slug: Web/API/reportError
l10n:
sourceCommit: 76717f752447b6eef25bf29c12272e407ee5cb6b
---

{{APIRef}} {{AvailableInWorkers}}

**`reportError()`** グローバルメソッドは、 JavaScript の捕捉されない例外をエミュレートして、コンソールやグローバルイベントハンドラにエラーを報告するために使用することができます。

この機能は、主にカスタムイベント配信ライブラリーや コールバック操作ライブラリーを対象としています。
ライブラリはこの機能を使用して、コールバックコードのエラーを捕捉し、最上位のハンドラーに投げ直すことができます。
これにより、 1 つのコールバックで例外が発生しても、他のコールバックが処理されなくなることがなくなると同時に、スタックトレース情報が最上位レベルのデバッグに利用できるようになります。

<!-- {{EmbedInteractiveExample("pages/js/self-reporterror.html")}} -->

## 構文

```js-nolint
reportError(throwable)
```

### 引数

- `throwable`
- : エラーオブジェクト、例えば {{jsxref("TypeError")}} です。

### 返値

なし ({{jsxref("undefined")}})。

### 例外

- {{jsxref("TypeError")}}
- : エラー引数なしでこのメソッドが呼び出された場合。

##

このメソッドが使用できるかどうかの機能検出です。

```js
if (typeof self.reportError === "function") {
// この関数が定義されている
}
```

以下のコードでは、どのようにエラーを作成して報告する方法、グローバルな `onerror` ハンドラーを使用するか、 `error` イベントのリスナーを追加してエラーを捕捉する方法を示しています。
`onerror` に割り当てられたハンドラーは、 `true` を返さなければ、イベントがそれ以上伝播しないことに注意してください。

```js
const newError = new Error("エラーメッセージ", "someFile.js", 11);
self.reportError(newError);

window.onerror = (message, source, lineno, colno, error) => {
console.error(`メッセージ: ${error.message}、行番号: ${lineno}`);
return true;
};

self.addEventListener("error", (error) => {
console.error(error.filename);
});

// 出力
// > "メッセージ: エラーメッセージ、行番号: 11"
// > "someFile.js"
```

## 仕様書

{{Specifications}}

## ブラウザーの互換性

{{Compat}}

## 関連情報

- [`Window`](/ja/docs/Web/API/Window#methods_implemented_from_elsewhere)
- [`WorkerGlobalScope`](/ja/docs/Web/API/WorkerGlobalScope#methods_implemented_from_elsewhere)
- [error](/ja/docs/Web/API/HTMLElement/error_event) イベント

0 comments on commit db01b67

Please sign in to comment.