`JSError.ThrowTypeError` / `ThrowRangeError` / `ThrowSyntaxError` throw a plain `Error`
評估
研究方向
Start with the string overloads in src/NodeApi/JSError.cs and compare them with the typed throw methods available on JSRuntime. Change each overload to call the matching runtime method. The issue mentions a PR test checking name, instanceof, message and code; use those checks to confirm all four error types behave as expected.
由索引模型根據 Issue 內容生成。
描述
The string overloads of the typed throw helpers in src/NodeApi/JSError.cs all call JSRuntime.ThrowError:
public static void ThrowTypeError(string message)
=> JSValue.GetCurrentRuntime(out napi_env env).ThrowError(env, code: null, message); // should be ThrowTypeError
The same applies to ThrowTypeError(code, message), ThrowRangeError(message), ThrowRangeError(code, message), ThrowSyntaxError(message) and ThrowSyntaxError(code, message). JS therefore receives an Error:
try { dotnetCallbackThatCallsThrowTypeError(); }
catch (e) {
e instanceof TypeError; // false
e.name; // 'Error'
}
JSRuntime already has ThrowTypeError, ThrowRangeError and ThrowSyntaxError (napi_throw_type_error, napi_throw_range_error, node_api_throw_syntax_error); they just are not called. Fix: call the matching runtime method. I have a PR with a test that checks name, instanceof, message and code for all four error types.
Version: main (54d2b74), 0.9.21 and 0.9.28.
- 主要語言
- C#
- 星號
- 789
- 分支
- 81
- 平均合併
- 34 分鐘
- 30 天內合併 PR
- 1
環境準備
- 沒有 Dockerfile 或 Docker Compose 檔案
- 沒有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
microsoft/node-api-dotnet 的其他 Issue
-
難度 1/5 1-3 小時 新手友好度 88/100
microsoft/node-api-dotnet#484 · 1 則留言 ·
-
Embedding args occasionally get trailing garbage on .NET (missing null terminator on a pooled buffer)可能已有人在做 @tolmachev-pravo 於 105 天前認領。 未關閉
難度 2/5 1-3 小時 新手友好度 82/100
microsoft/node-api-dotnet#481 ·
-
`PooledBuffer.FromStringUtf8`/`FromSpanUtf8` never write the NUL terminator → garbage in JS error messages and linked module names on .NET可能已有人在做 @r-Larch 於 6 天前認領。 未關閉
難度 2/5 1-3 小時 新手友好度 30/100
microsoft/node-api-dotnet#508 ·
-
JSError.ThrowError(Exception) aborts the process when a Worker terminates during a .NET call可能已有人在做 @GalaxiasKyklos 於 14 天前認領。 未關閉
難度 4/5 3-5 天 新手友好度 18/100
microsoft/node-api-dotnet#505 ·
-
難度 3/5 1-2 天 新手友好度 70/100
microsoft/node-api-dotnet#504 ·
查看 microsoft/node-api-dotnet 的全部 Issue
相似的 Issue
-
難度 2/5 1-3 小時 新手友好度 77/100
維護者通常 1 天內回覆
-
:watch: Not Triaged advanced-concepts/subsvc dotnet-csharp/svc
難度 1/5 1-3 小時 新手友好度 84/100
維護者通常 1 天內回覆
-
[bug] Season images use the season's TMDB id as a TVDB series id可能已有人在做 @ViKodex 今天認領。 未關閉
難度 2/5 1-3 小時 新手友好度 85/100
-
enhancement no-stack-trace
難度 2/5 1-3 小時 新手友好度 66/100
greenshot/greenshot#1618 · 3 則留言 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 67/100
microsoft/aspire.dev#1962 ·
維護者通常 1 天內回覆