Erlang(7) 順序程式的錯誤處理

2021-07-26 04:27:23 字數 1206 閱讀 8452

顯式生成錯誤的方法:

exit(why) 廣播乙個訊號給當前程序鏈結的所有程序。

throw(why) 丟擲乙個呼叫者可能想要捕捉的異常錯誤。

error(why) 指示奔潰性錯誤,非常嚴重的錯誤。

捕捉錯誤,try...catch

try funcorexpressionseq of

pattern1[when guard1] -> expressions1;

pattern2[when guard2] -> expressions2;

...catch

exceptiontype1: expattern1 [when exguard1] -> exexpressions1;

exexpressions2: expattern2 [when exguard2] -> exexpressions2;

...after

afterexpressions

end

提供了概括的資訊

catch 語句,比try...catch更加早引入erlang。

提供了詳細的棧跟蹤資訊。

經常出現錯誤的時候的**:

case f(x) of

->

do_some_thing_with(val);

->

%% ... 處理這個錯誤...

end,

...

錯誤可能有但罕見時的**

try my_func(x)

catch

throw: -> ...

throw: -> ...

end

捕捉一切異常錯誤:

try expr

catch

_:_ -> ... 處理所有異常錯誤的**

end

erlang:get_stacktrace()獲得最近的棧跟蹤資訊。

有錯誤,就要盡量往外面拋,展現出來。讓程式徹底奔潰。這是erlang 的原則。

或許吧。

但是不是做遊戲的原則。

至少不是做遊戲服務端的原則。

我們可以容忍錯誤的存在。因為我們是快速開發。bug是修不完的。

只能建乙個修乙個。

Dataframe GroupBy的順序錯誤

最近在實際專案使用dataframe的時候遇到乙個坑。那就是假如我先對dataframe進行groupby 分組,然後再對各組進行遍歷。它的順序是並不是我們之前的排序順序。具體如下 在import pandas as pd test df pd.dataframe 1,88,888 1,99,999...

Erlang模組與Erlang程式的執行方法

一 模組與程式檔案 erlang是一種函式式程式語言,當我們要完成乙個專案時,總不可能把所有的函式都定義在乙個程式檔案中,為了開發和維護方便,通常按邏輯功能劃分將其分別分散在多個程式檔案中。每個erlang程式檔案就是乙個模組,檔名的副檔名部分為.erl,模組的名稱必須與檔名稱中的主檔名完全相同 不...

erlang程式執行的幾種方式

1.在erlang shell中編譯執行 1 module hello 2 export start 0 34 start 5 io format hello world n view source print?erl erlang r14b03 erts 5.8.4 source smp 2 2 ...