Skip to content

Commit

Permalink
Translate GPUPipelineError
Browse files Browse the repository at this point in the history
  • Loading branch information
mikecat committed Sep 19, 2024
1 parent 4f1aeab commit cd1575e
Show file tree
Hide file tree
Showing 3 changed files with 148 additions and 0 deletions.
46 changes: 46 additions & 0 deletions files/ja/web/api/gpupipelineerror/gpupipelineerror/index.md
Original file line number Diff line number Diff line change
@@ -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)
67 changes: 67 additions & 0 deletions files/ja/web/api/gpupipelineerror/index.md
Original file line number Diff line number Diff line change
@@ -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)
35 changes: 35 additions & 0 deletions files/ja/web/api/gpupipelineerror/reason/index.md
Original file line number Diff line number Diff line change
@@ -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)

0 comments on commit cd1575e

Please sign in to comment.