erlang的异常处理没有什么太大的特别的
异常分为:
- error
- throw
- exit(一般正常退出也用这个)
原来的做法是用catch:
1> catch 0. 0 2> catch throw(0). 0 3> catch a=b. {'EXIT',{{badmatch,b},[{erl_eval,expr,3,[]}]}} 4> catch exit(0). {'EXIT',0}
从上到下分别是:
正常:直接输出
throw异常:直接输出异常原因
error(匹配错误):输出详细内容
exit:输出退出和退出原因
然后有一个例子 简单记一下:
-module(excep). -export([ec_test/0]). ec_test() -> try %% throw("throw exception") %抛出一个异常 %% 0 %正常输出 %% a=b %一个匹配错误 exit(0) of 0 ->io:format("0~n"); _ ->io:format("other~n") catch throw:Case -> io:format("throw exception:~p~n",[Case]); error:Case -> io:format("error:~p~n",[Case]); exit:Case -> io:format("exit:~p~n",[Case]) after io:format("program exit~n") end.
格式可以是:
- try...catch...
- try..of..catch
- try...after,,,,
- 或者以上的 try...of...catch...after
只有try那边抛出的异常才会被捕获到
of和catch出现异常不会被捕获
after无论如何都会被执行,如果after有异常那么他的异常会取代掉try中的异常
这边的格式也需要注意
最后一定会有个end说明结束了
但每一块中的最后一个语句是不用加符号的(不用写 ,(逗号) 或者 ;(分号))
也顺便说下我关于符号的理解吧
句号 . 表示结束(用于shell输入语句 或者函数结束等)
分号 ; 表示并列(用书case if 和同名函数的并列)
逗号 . 表示顺序执行(好像说的不太对 when的条件,语句等)
$ 取对应字符的数值
# 进制#数值 例如 2#0101(5).
其他的内容
erlang:get_stacktrace(). 获得异常堆栈
erlang:raise(错误类别,原因,堆栈). 用来再次抛出异常.
相关推荐
erlang异常处理详解 开发经验: 面对软件错误构建可靠的分布式系统 编写分布式的 Erlang 程序:陷阱和对策 硝烟中的Erlang 深入底层: erlang VM基于多核处理器的可伸缩性特征 erlang VM内部数据共享机制 erlang ...
erlang 程序设计一书的笔记,帮你快速重温erlang的知识点。
erlang入门电子书 erlang编程 Introducing Erlang,作者Simon.St.Laurent
这个是平时工作中使用到的xml处理,使用的是erlang自带的方法加上自已的一个调整使用的,没找到可以选1分的地方
erlang 安装包
(494页带目录的高清扫描版) 这是一本讲解Erlang编程语言的入门指南,内容通俗...内容涉及模块、函数、类型、递归、错误和异常、常用数据结构、并行编程、多处理、OTP、事件处理,以及所有Erlang的重要特性和强大功能。
Erlang及其应用Erlang及其应用Erlang及其应用
erlang25.0 windows版本
erlang otp25 win安装包
ErlangB和ErlangC计算工具(exe可执行文件+excel两个) ErlangB和ErlangC计算工具(exe可执行文件+excel两个)
erlang22最新下载包 erlang22.1.tar.gz erlang22最新下载包 erlang22最新下载包
Erlang并发编程,Erlang程序设计,Erlang中文手册。 学习erlang的好资料。 Erlang是一个结构化,动态类型编程语言,内建并行计算支持。最初是由爱立信专门为通信应用设计的,比如控制交换机或者变换协议等,因此...
erlang 中文基础教程erlang 中文基础教程
erlang编程指南学习笔记,包含具体操作命令例子
erlang安装包
erlang资源,非常值得下载,二郎学习
Programming Erlang
rabbitmq,erlang安装包
Erlang特性: ● 并发性 - Erlang支持超大量级的并发进程,并且不需要操作系统具有并发机制。 ● 分布式 - 一个分布式Erlang系统是多个Erlang节点组成的网络(通常每个处理器被作为一个节点) ● 健壮性 - Erlang...
Erlang图像处理过程eimp是一个Erlang / Elixir应用程序,用于使用外部C库处理图形图像。 它支持WebP,JPEG,PNG和GIF。要求GNU Make 海湾合作委员会Erlang / OTP 17及更高版本libgd libwebp libpng libjpeg 注意:很...