「Unity/sentry」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→Exceptionをそのままthrow) |
(→async内でexceptionを出す場合) |
||
行81: | 行81: | ||
ログ | ログ | ||
<pre> | <pre> | ||
− | + | HogeProject/Assets/Scripts/ExceptionScene.cs in ExecUniTask at line 32:9 | |
In App | In App | ||
− | + | Hoge/Library/PackageCache/com.cysharp.unitask@b992a061fb/Runtime/UniTask.Factory.cs in GetResult at line 255:17 | |
In App | In App | ||
− | + | HogeProject/Assets/Scripts/ExceptionScene.cs in Exec at line 26:9 | |
In App | In App | ||
</pre> | </pre> | ||
ExceptionがStart側まで戻れず、try-catchができず、アプリに対して、Exceptionをthrowしてしまう。 | ExceptionがStart側まで戻れず、try-catchができず、アプリに対して、Exceptionをthrowしてしまう。 | ||
+ | |||
+ | ===async内でexceptionを出し、async内でtry-catch=== | ||
+ | |||
+ | void Start() | ||
+ | { | ||
+ | Exec(); | ||
+ | } | ||
+ | async void Exec() | ||
+ | { | ||
+ | try | ||
+ | { | ||
+ | var result = await ExecUniTask(); | ||
+ | Debug.Log("Exec " + result); | ||
+ | } | ||
+ | catch (Exception e) | ||
+ | { | ||
+ | Debug.LogError(e.Message + ":" + e.StackTrace); | ||
+ | } | ||
+ | } | ||
+ | async UniTask<float> ExecUniTask() | ||
+ | { | ||
+ | throw new Exception("例外エラー1"); | ||
+ | return 100f; | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | ログ | ||
+ | <pre> | ||
+ | 例外エラー1: at ExceptionScene.ExecUniTask () [0x00000] in HogeProject/Assets/Scripts/ExceptionScene.cs:31 | ||
+ | at Cysharp.Threading.Tasks.UniTask+ExceptionResultSource`1[T].GetResult (System.Int16 token) [0x00015] in HogeLibrary/PackageCache/com.cysharp.unitask@b992a061fb/Runtime/UniTask.Factory.cs:255 | ||
+ | at ExceptionScene.Exec () [0x00024] in HogeProject/Assets/Scripts/ExceptionScene.cs:19 | ||
+ | <pre> | ||
+ | try-catchできる。 |
2023年8月11日 (金) 01:49時点における版
目次
Sentryとは
バグのエラーログなどをクラウド上で確認できるサービス
インストール
PackageManagerのgit urlから以下を設定
https://github.com/getsentry/unity.git#1.5.0
sentryのweb管理画面に表示されてるDNSのURLを、Unityメインメニュー/tools/sentryに入れる。
プラン
無料
- トラッキング件数/月:5000件
- ユーザー数:1人
- ログ保持期間:30日間
チーム(26$/月)
- トラッキング件数/月:10万件
- ユーザー数:無制限
- ログ保持期間:90日間
ビジネス(80$/月)
- トラッキング件数/月:10万件
- ユーザー数:無制限
- ログ保持期間:90日間
色々なログ
Exceptionをそのままthrow
ログ
Stack Trace System.Exception 例外エラー1 HogeProject/Assets/Scripts/ExceptionScene.cs in Exec at line 26:9 In App HogeProject/Assets/Scripts/ExceptionScene.cs in Start at line 15:13
try-catchをせず、アプリに対してthrow Exceptionしてしまう。
Exceptionをtry-catchで取得したとき
try { Exec(); } catch (Exception e) { Debug.LogError(e.Message + ":" + e.StackTrace); }
ログ
例外エラー1: at ExceptionScene.Exec () [0x00000] in HogeProject/Assets/Scripts/ExceptionScene.cs:26 at ExceptionScene.Start () [0x0000a] in HogeProjectAssets/Scripts/ExceptionScene.cs:15
async内でexceptionを出す場合
void Start() { try { Exec(); } catch (Exception e) { Debug.LogError(e.Message + ":" + e.StackTrace); } } async void Exec() { var result = await ExecUniTask(); Debug.Log("Exec " + result); } async UniTask<float> ExecUniTask() { throw new Exception("例外エラー1"); return 100f; }
ログ
HogeProject/Assets/Scripts/ExceptionScene.cs in ExecUniTask at line 32:9 In App Hoge/Library/PackageCache/com.cysharp.unitask@b992a061fb/Runtime/UniTask.Factory.cs in GetResult at line 255:17 In App HogeProject/Assets/Scripts/ExceptionScene.cs in Exec at line 26:9 In App
ExceptionがStart側まで戻れず、try-catchができず、アプリに対して、Exceptionをthrowしてしまう。
async内でexceptionを出し、async内でtry-catch
void Start() {
Exec();
} async void Exec() {
try { var result = await ExecUniTask(); Debug.Log("Exec " + result); } catch (Exception e) { Debug.LogError(e.Message + ":" + e.StackTrace); }
} async UniTask<float> ExecUniTask() {
throw new Exception("例外エラー1"); return 100f;
} </pre>
ログ
例外エラー1: at ExceptionScene.ExecUniTask () [0x00000] in HogeProject/Assets/Scripts/ExceptionScene.cs:31 at Cysharp.Threading.Tasks.UniTask+ExceptionResultSource`1[T].GetResult (System.Int16 token) [0x00015] in HogeLibrary/PackageCache/com.cysharp.unitask@b992a061fb/Runtime/UniTask.Factory.cs:255 at ExceptionScene.Exec () [0x00024] in HogeProject/Assets/Scripts/ExceptionScene.cs:19 <pre> try-catchできる。