2017-12-11 19 views
0

カスタム例外とタイプ仕様

@spec capture_exception(Exception.t, Keyword.t) :: task 
    def capture_exception(exception, opts \\ []) do 

    ... 

    Sentry.capture_exception(AppWeb.CustomError, 
         [stacktrace: System.stacktrace()] 

CustomErrorは例外ではありませんので、dialyzerbreaks the contractでクラッシュします:定義された型の仕様の種類

コール 'Elixir.Sentry':capture_exception( 'Elixir.AppWeb.CustomError'、[{ 'スタックトレース'、[{原子()、原子()、[任意()] |バイト()、[{'ファイル'、文字列()} | ( 'Elixir.Exception':t()、 'Elixir.Keyword':t()) - > task()

{0}}}}}}

Elixir.ExceptionモジュールをAppWeb.CustomErrorに何とか拡張できますか?ベストプラクティスに従うことでこれをどのように気にすることができますか?

+0

'Sentry.capture_exception(%AppWeb.CustomError {}、...)'は動作しますか? – Dogbert

答えて

2

インスタンス(%AppWeb.CustomError{})ではなく、モジュール名(AppWeb.CustomError)を渡しています。モジュールのインスタンスはException.tタイプを満たします。

関連する問題