facebook twitter hatena line email

「Unity/sentry」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(async内でexceptionを出す場合)
 
(同じ利用者による、間の13版が非表示)
行1: 行1:
==Sentryとは==
+
[[Unity/sentry/基本]]
バグのエラーログなどをクラウド上で確認できるサービス
+
  
==インストール==
+
[[Unity/sentry/インストール]]
PackageManagerのgit urlから以下を設定
+
https://github.com/getsentry/unity.git#1.5.0
+
  
sentryのweb管理画面に表示されてるDNSのURLを、Unityメインメニュー/tools/sentryに入れる。
+
[[Unity/sentry/ユーザ名設定]]
  
==プラン==
+
[[Unity/sentry/ログ]]
無料
+
* トラッキング件数/月:5000件
+
* ユーザー数:1人
+
* ログ保持期間:30日間
+
チーム(26$/月)
+
* トラッキング件数/月:10万件
+
* ユーザー数:無制限
+
* ログ保持期間:90日間
+
ビジネス(80$/月)
+
* トラッキング件数/月:10万件
+
* ユーザー数:無制限
+
* ログ保持期間:90日間
+
  
==色々なログ==
+
[[Unity/sentry/ログ検索]]
===Exceptionをそのままthrow===
+
<pre>
+
void Start()
+
{
+
    Exec();
+
}
+
void Exec()
+
{
+
    throw new Exception("例外エラー1");
+
}
+
</pre>
+
ログ
+
<pre>
+
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
+
</pre>
+
  
try-catchをせず、アプリに対してthrow Exceptionしてしまう。
+
[[Unity/sentry/制限]]
  
===Exceptionをtry-catchで取得したとき===
+
[[Unity/sentry/BREAKPOINT対応]]
<pre>
+
try
+
{
+
    Exec();
+
}
+
catch (Exception e)
+
{
+
    Debug.LogError(e.Message + ":" + e.StackTrace);
+
}
+
</pre>
+
ログ
+
<pre>
+
例外エラー1:  at ExceptionScene.Exec () [0x00000] in HogeProject/Assets/Scripts/ExceptionScene.cs:26
+
  at ExceptionScene.Start () [0x0000a] in HogeProjectAssets/Scripts/ExceptionScene.cs:15
+
</pre>
+
 
+
===async内でexceptionを出す場合===
+
<pre>
+
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;
+
}
+
</pre>
+
ログ
+
<pre>
+
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
+
</pre>
+
ExceptionがStart側まで戻れず、try-catchができず、アプリに対して、Exceptionをthrowしてしまう。
+
 
+
===async内でexceptionを出し、async内でtry-catch===
+
<pre>
+
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年10月25日 (水) 17:56時点における最新版

Unity/sentry/基本

Unity/sentry/インストール

Unity/sentry/ユーザ名設定

Unity/sentry/ログ

Unity/sentry/ログ検索

Unity/sentry/制限

Unity/sentry/BREAKPOINT対応