diff --git a/files/ja/web/api/gpupipelineerror/gpupipelineerror/index.md b/files/ja/web/api/gpupipelineerror/gpupipelineerror/index.md new file mode 100644 index 00000000000000..a592883056f539 --- /dev/null +++ b/files/ja/web/api/gpupipelineerror/gpupipelineerror/index.md @@ -0,0 +1,46 @@ +--- +title: "GPUPipelineError: GPUPipelineError() コンストラクター" +slug: Web/API/GPUPipelineError/GPUPipelineError +l10n: + sourceCommit: 89c435da452257b944b403cc9e45036fcb22590e +--- + +{{APIRef("WebGPU API")}}{{SeeCompatTable}}{{SecureContext_Header}} + +**`GPUPipelineError()`** コンストラクターは、新しい {{domxref("GPUPipelineError")}} オブジェクトのインスタンスを生成します。 + +## 構文 + +```js-nolint +new GPUPipelineError(message, options) +``` + +### 引数 + +- `message` {{optional_inline}} + - : なぜエラーが起きたのかを説明する人間向けのメッセージを提供する文字列です。指定されなかった場合は、`message` は空文字列 (`""`) になります。 +- `options` + - : オブジェクトで、以下のプロパティを持つことができます。 + - `reason` + - : パイプラインの生成に失敗した理由を機械可読な形式で表す列挙値です。値は以下のいずれかです。 + - `"internal"`: パイプラインの生成は内部エラーのため失敗しました。(この種類のエラーについて詳しくは、{{domxref("GPUInternalError")}} を参照してください) + - `"validation"`: パイプラインの生成はバリデーションエラーのため失敗しました。(この種類のエラーについて詳しくは、{{domxref("GPUValidationError")}} を参照してください) + +## 例 + +開発者は、自分でこのコンストラクターを用いて `GPUPipelineError` オブジェクトを生成することはないでしょう。ユーザーエージェントは、パイプラインの失敗を表すため {{domxref("GPUDevice.createComputePipelineAsync()")}} や {{domxref("GPUDevice.createRenderPipelineAsync()")}} が返した {{jsxref("Promise")}} が拒否されるとき、このコンストラクターを用いて適切なオブジェクトを生成します。 + +`GPUPipelineError` オブジェクトのインスタンスを扱う例は、メインの [`GPUPipelineError`](/ja/docs/Web/API/GPUPipelineError#例) のページを参照してください。 + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- The [WebGPU API](/en-US/docs/Web/API/WebGPU_API) +- [WebGPU Error Handling best practices](https://toji.dev/webgpu-best-practices/error-handling) diff --git a/files/ja/web/api/gpupipelineerror/index.md b/files/ja/web/api/gpupipelineerror/index.md new file mode 100644 index 00000000000000..5993c507d6e600 --- /dev/null +++ b/files/ja/web/api/gpupipelineerror/index.md @@ -0,0 +1,67 @@ +--- +title: GPUPipelineError +slug: Web/API/GPUPipelineError +l10n: + sourceCommit: 89c435da452257b944b403cc9e45036fcb22590e +--- + +{{APIRef("WebGPU API")}}{{SeeCompatTable}}{{SecureContext_Header}} + +{{domxref("WebGPU API", "WebGPU API", "", "nocode")}} の **`GPUPipelineError`** インターフェイスは、パイプラインの失敗を表現します。これは、{{domxref("GPUDevice.createComputePipelineAsync()")}} や {{domxref("GPUDevice.createRenderPipelineAsync()")}} から返された {{jsxref("Promise")}} が拒否されたとき渡される値です。 + +{{InheritanceDiagram}} + +## コンストラクター + +- {{domxref("GPUPipelineError.GPUPipelineError", "GPUPipelineError()")}} {{Experimental_Inline}} + - : 新しい `GPUPipelineError` オブジェクトのインスタンスを生成します。 + +## インスタンスプロパティ + +_親の {{domxref("DOMException")}} からプロパティを継承します。_ + +- {{domxref("GPUPipelineError.reason", "reason")}} {{Experimental_Inline}} {{ReadOnlyInline}} + - : パイプラインの生成に失敗した理由を機械可読な形式で表す列挙値です。 + +## 例 + +以下のスニペットでは、{{domxref("GPUDevice.createComputePipelineAsync()")}} を用いて {{domxref("GPUComputePipeline")}} を生成しようとしています。しかし、コンピュートパイプラインの `entryPoint` を (`"main"` とするべきなのに) `"maijn"` とスペルミスしているので、パイプラインの生成に失敗し、`catch` ブロックで処理結果の理由とエラーメッセージをコンソールに出力します。 + +```js +// ... + +let computePipeline; + +try { + computePipeline = await device.createComputePipelineAsync({ + layout: device.createPipelineLayout({ + bindGroupLayouts: [bindGroupLayout], + }), + compute: { + module: shaderModule, + entryPoint: "maijn", + }, + }); +} catch (error) { + // error は GPUPipelineError オブジェクトのインスタンス + console.error(error.reason); + console.error(`パイプラインの生成に失敗: ${error.message}`); +} + +// ... +``` + +この場合、得られる `reason` は `"Validation"` で、`message` は `"Entry point "maijn" doesn't exist in the shader module [ShaderModule]."` です。 + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- [WebGPU API](/ja/docs/Web/API/WebGPU_API) +- [WebGPU Error Handling best practices](https://toji.dev/webgpu-best-practices/error-handling) diff --git a/files/ja/web/api/gpupipelineerror/reason/index.md b/files/ja/web/api/gpupipelineerror/reason/index.md new file mode 100644 index 00000000000000..ad26172c67c915 --- /dev/null +++ b/files/ja/web/api/gpupipelineerror/reason/index.md @@ -0,0 +1,35 @@ +--- +title: "GPUPipelineError: reason プロパティ" +slug: Web/API/GPUPipelineError/reason +l10n: + sourceCommit: 89c435da452257b944b403cc9e45036fcb22590e +--- + +{{APIRef("WebGPU API")}}{{SeeCompatTable}}{{SecureContext_Header}} + +{{domxref("GPUPipelineError")}} インターフェイスの読み取り専用プロパティ **`reason`** は、パイプラインの生成に失敗した理由を機械可読な形式で表します。 + +## 値 + +列挙値で、以下のいずれかの値をとります。 + +- `"internal"` + - : パイプラインの生成は内部エラーのため失敗しました。(この種類のエラーについて詳しくは、{{domxref("GPUInternalError")}} を参照してください) +- `"validation"` + - : パイプラインの生成はバリデーションエラーのため失敗しました。(この種類のエラーについて詳しくは、{{domxref("GPUValidationError")}} を参照してください) + +## 例 + +`GPUPipelineError` オブジェクトのインスタンスを扱う例は、メインの [`GPUPipelineError`](/ja/docs/Web/API/GPUPipelineError#例) のページを参照してください。 + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- [WebGPU API](/ja/docs/Web/API/WebGPU_API)