erlang:raise(Class, Reason, Stacktrace) -> badarg
Class = error | exit | throw
Reason = term()
Stacktrace = raise_stacktrace() | stacktrace()
引發指定類、原因和調用堆棧回溯(stacktrace)的異常。
Class
是 error
、 exit
或 throw
。因此,如果沒有堆棧跟蹤,erlang:raise(Class, Reason,
Stacktrace)
相當於 erlang:Class(Reason)
(假設 Class
是一個有效的類)。
Reason
可以是任何術語。
Stacktrace
是try-catch 子句中提供的列表。
try
...
catch Class:Reason:Stacktrace ->
...
end
即four-tuples {Module, Function, Arity | Args,
ExtraInfo}
列表,其中Module
和Function
是原子,第三個元素是整數元數或參數列表。堆棧跟蹤還可以包含 {Fun,
Args, ExtraInfo}
元組,其中 Fun
是本地函數,Args
是參數列表。
末尾的元素 ExtraInfo
是可選的。省略它相當於指定一個空列表。
堆棧跟蹤用作調用進程的異常堆棧跟蹤;它被截斷為當前最大堆棧跟蹤深度。
由於計算此函數會導致進程終止,因此除非參數無效,否則它沒有返回值,在這種情況下,函數將返回錯誤原因 badarg
。如果你想確定不返回,可以調用error(erlang:raise(Class, Reason,
Stacktrace))
,希望稍後能區分異常。
請參閱參考手冊了解錯誤和錯誤處理有關異常類以及如何捕獲異常的更多信息。
相關用法
- erlang rand_seed()用法及代碼示例
- erlang range(BinRel)用法及代碼示例
- erlang reverse用法及代碼示例
- erlang rename用法及代碼示例
- erlang remove用法及代碼示例
- erlang registered用法及代碼示例
- erlang register用法及代碼示例
- erlang repair_continuation(Continuation, MatchSpec)用法及代碼示例
- erlang rootname(Filename)用法及代碼示例
- erlang register(RegName, PidOrPort)用法及代碼示例
- erlang registered()用法及代碼示例
- erlang round(Number)用法及代碼示例
- erlang read_file_info(Filename)用法及代碼示例
- erlang read_file_info(File)用法及代碼示例
- erlang remove(Key, Map1)用法及代碼示例
- erlang referenced_byte_size(Binary)用法及代碼示例
- erlang replace(Subject, Pattern, Replacement, Options)用法及代碼示例
- erlang receive_response(RequestId, Timeout)用法及代碼示例
- erlang replace(String, SearchPattern, Replacement)用法及代碼示例
- erlang reverse(String :: unicode:chardata())用法及代碼示例
- erlang right(String, Number)用法及代碼示例
- erlang rstr(String, SubString)用法及代碼示例
- erlang rfc3339_to_system_time(DateTimeString)用法及代碼示例
- erlang reverse(List1, Tail)用法及代碼示例
注:本文由純淨天空篩選整理自erlang.org大神的英文原創作品 raise(Class, Reason, Stacktrace) -> badarg。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。