顯式生成錯誤的方法:
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 ...