erlang趣事五之catch和try_catch
来源:互联网 发布:朱元璋废丞相知乎 编辑:程序博客网 时间:2024/06/05 15:50
前一段时间得到一份erlang的面试题,看了之后觉得好多都不会,趁周末有时间整理下。
简述catch与try…catch用法上的区别,以及怎么获取最近的栈跟踪信息。
当时看到后,心里默念什么鬼?
本人水平比较菜,所以不知道,就去找书去了。
我又看了一遍 第6章:顺序编程的错误处理
得到了答案:
首先,我写个测试的moudle,便于理解。上代码:
-module(test1).%%% =================================================================%%% API functions%%% =================================================================-export([ test_try_catch/0, test_catch/0]).%%% =================================================================%%% Internal functions%%% ================================================================test_try_catch()->try 1/0catch throw:Term -> Term; exit:Reason -> Reason; error:Reason-> Reasonend.test_catch()->catch 1/0.
看明白了没,
书上关于两者的说明是:
try...catch
首先执行FuncOrExpessionSeq,如果执行过程中没有抛出异常错误,就会返回需要的返回值;
如果执行过程中抛出了异常错误,那么就会在catch里进行匹配,ExceptionType 是一个原子(throw,exit,error其中一个),如果省略它,就会使用默认值throw。
catch
在catch语句里发生异常,就会转换成一个描述词错误的{‘EXIT’,...}的元组。
并且两中方法提供了不同量级的调试信息。catch提供了详细的栈跟踪信息。
栈跟踪:erlang:get_stacktrace().
本人菜鸟水平,如有不对,请指正,大神请绕过!
0 0
- erlang趣事五之catch和try_catch
- erlang趣事之guard
- erlang 趣事之 socket通讯
- erlang趣事之 列表推导
- erlang趣事之erts的home路径
- erlang趣事之二进制型与位于法
- erlang趣事一
- erlang趣事二
- erlang趣事三
- erlang趣事四
- try_catch
- erlang趣事六erlangshell ssh登陆
- 童年趣事之二
- 新年趣事之打牌
- 新年趣事之游戏
- 新年趣事之打牌
- 新年趣事之打牌
- 偷之趣事一
- 6 Methods For Vertical Centering With CSS
- PythonChallenge之level-6解题报告
- //快排思想第k大
- 【TSQL】排序的简单应用
- 蓝牙 Core Bluetooth
- erlang趣事五之catch和try_catch
- 高斯混合模型(GMM)实现和可视化
- Java 类加载器
- 插入排序
- 239.255.255.250:1900
- 2016-03-06踏青
- servlet init 重写的例子
- 控件的布局动画
- Redis 简介