Erlang Day 3 异常处理
• 三种方式可以抛出异常
• exit(Why). 将广播一条消息{EXIT,Pid,Why}给所有链接到当前进程的进程
• throw(Why). 抛出一个异常,一般文档里需要描述,由调用者去决定catch或者忽略
• erlang:erro(Why). 一般是内部错误
try FuncOrExpressionSequence of
Pattern1 [when Guard1] -> Expressions1;
Pattern2 [when Guard2] -> Expressions2;
...
catch
ExceptionType: ExPattern1 [when ExGuard1] -> ExExpressions1;
ExceptionType: ExPattern2 [when ExGuard2] -> ExExpressions2;
...
after
AfterExpressions
end
• 和case语句很类似
• try 语句有一个返回值的
X = try .... end,
Y = get_y(),
....
• 捕获所有异常,
try Expr
catch
_:_ -> ....
end
• 三种方式可以抛出异常
• exit(Why). 将广播一条消息{EXIT,Pid,Why}给所有链接到当前进程的进程
• throw(Why). 抛出一个异常,一般文档里需要描述,由调用者去决定catch或者忽略
• erlang:erro(Why). 一般是内部错误
try FuncOrExpressionSequence of
Pattern1 [when Guard1] -> Expressions1;
Pattern2 [when Guard2] -> Expressions2;
...
catch
ExceptionType: ExPattern1 [when ExGuard1] -> ExExpressions1;
ExceptionType: ExPattern2 [when ExGuard2] -> ExExpressions2;
...
after
AfterExpressions
end
• 和case语句很类似
• try 语句有一个返回值的
X = try .... end,
Y = get_y(),
....
• 捕获所有异常,
try Expr
catch
_:_ -> ....
end