Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ja] Translate GPUPipelineError #23681

Merged
merged 2 commits into from
Sep 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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}}

## 関連情報

- [WebGPU API](/ja/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)