erlang中错误大体分为四种:

1. 编译错误 
   2. 逻辑错误 
   3. 运行时错误 
   4. 用户代码生成的错误

编译错误,主要是编译器检测出的代码语法错误 
逻辑错误,是指程序没有完成预期的工作,属于开发人员的问题 
运行时错误,是指erlang运行时抛出的错误,比如对非数据类型执行算术运算,erlang运行时会捕获异常,并抛出。在erlang中,这类异常的类型为error 
用户自定义错误,是指通过exit/1或者throw/1生成

我们把运行时错误以及用户抛出的错误称为异常(exception),他们具有三种类型:throw, error, exit。 
error型异常,通过erlang:error/1, 2生成,也可以使用早期的erlang:fault/1, 2 
throw型异常,通过throw/1生成 
exit型异常,通过exit/1生成

在erlang中,进程内的异常可以通过try, catch来进行捕获处理。 
推荐使用try,其为新添加的语法。进程间的异常可以通过监督树(supervisor tree),监控进程(monitor)来实现。

badarg 参数错误,参数格式或类型错误 
badarith 算术表达式错误,算术表达式中含有错误的参数 
{badmatch,V} 模式匹配错误,V指具体的发生匹配错误的数值 
function_clause 函数子句错误,没有找到匹配的函数子句 
{case_clause,V} case匹配错误,没有找到匹配的case pattern 
if_clause if子句错误,没有找到为ture的if子句 
{try_clause,V} try匹配错误,执行try时,没有找到匹配的pattern 
undef 函数未定义错误 
{badfun,F} 函数错误 
{badarity,F} 函数参数个数错误 
timeout_value 超时参数错误,在receive.. after语法中,after对应的超时数据错误(应为不小于0的integer或infinity 
noproc Process 错误,Process不存在 
{nocatch,V} throw未被catch 
system_limit 系统限制错误,某些性能或数据达到系统极限

Erlang中一些错误或者异常的标识的更多相关文章

  1. [erlang 001] erlang中的错误及异常处理

    一. erlang中的错误 1. 分类 1) 编译错误:主要是编译器检测出的代码语法错误: 2) 逻辑错误:是指程序没有完成预期的工作,属于开发人员的问题: 3) 运行时错误:是指erlang运行时抛 ...

  2. php中的错误和异常

    总结: php错误不会抛出异常,因此不能被catch,但会根据配置写入日志文件或者输出到浏览器,所以可以通过日志文件查看错误 php异常都必须自己抛出,并通过catch捕捉.SQL语句执行的错误好像可 ...

  3. 关于Python中的错误与异常,你是否了解的够仔细?

    每次版本结束都描述这着同样的错误,相似的问题,但始终没见解决.所以今天,我就来总结下Python的错误与异常! 异常与错误 错误 语法错误 可以通过IDE或者解释器给出提示的错误 opentxt('a ...

  4. Python中的错误和异常

    前言 错误是程序中的问题,由于这些问题而导致程序停止执行.另一方面,当某些内部事件发生时,会引发异常,从而改变程序的正常流程. python中会发生两种类型的错误. 语法错误 逻辑错误(异常) 语法错 ...

  5. [Go] 如何正确地 抛出 错误 和 异常(error/panic/recover)?

    序言 错误 和 异常 是两个不同的概念,非常容易混淆.很多程序员习惯将一切非正常情况都看做错误,而不区分错误和异常,即使程序中可能有异常抛出,也将异常及时捕获并转换成错误.从表面上看,一切皆错误的思路 ...

  6. php错误及异常捕捉

    原文:php错误及异常捕捉 在实际开发中,错误及异常捕捉仅仅靠try{}catch()是远远不够的. 所以引用以下几中函数. a)   set_error_handler 一般用于捕捉  E_NOTI ...

  7. php 中的错误处理机制

    php 里有一套错误处理机制,可以使用 set_error_handler 接管 php 错误处理,也可以使用 trigger_error 函数主动抛出一个错误. set_error_handler( ...

  8. Python3基础(九) 错误和异常

    本文主要介绍Python中的错误和异常,涉及到简单的异常处理.抛出异常以及清理动作.至于自定义异常类,将在介绍类与继承的时候讲到. 一.定义 常见的两种错误:语法错误 和 异常. 1.语法错误(Syn ...

  9. 错误注入 异常行为 环境变量或代码动态激活来触发这些异常行为 模拟错误 容错性 正确性 稳定性 宏 本质 macro

    小结: 1. 微服务中某个服务出现随机延迟.某个服务不可用. 存储系统磁盘 IO 延迟增加.IO 吞吐量过低.落盘时间长. 调度系统中出现热点,某个调度指令失败. 充值系统中模拟第三方重复请求充值成功 ...

随机推荐

  1. C# sqlserver 2008 连接字符串

    sqlserver 2008 的连接字符串和sql2005的几乎是一样的,但是,他们对于其中的一些配置要求不同.我试着用了很多连接字符串,最后找到了问题的原因,特别记录到这里,如果有相同问题的同学,可 ...

  2. Python 中的__new__和__init__的区别

    [同] 二者均是Python面向对象语言中的函数,__new__比较少用,__init__则用的比较多. [异] __new__是在实例创建之前被调用的,因为它的任务就是创建实例然后返回该实例对象,是 ...

  3. iphone 恢复出厂设置方法

    1.下载安装并打开itunes. 2.让手机进入恢复模式: 一.先长按住电源键,出现关机选项时,请滑动关机: 二.随后再按电源键开机,屏幕会出现苹果标志,不要松开电源键: 三.接着再按住主屏 Home ...

  4. 【Visual Studio】Visual C# 中XML注释的使用(含注释在开发时显示换行)

    为函数方法注释说明要用到 xml 语句 <summary> 段落说明 </summary> .<para> 新段示例说明 </para>.<par ...

  5. 【Spring】SpringMVC之上传文件

    这里笔者介绍利用SpringMVC上传图片的操作. 步骤 1.  引入jar文件 不仅需要导入开发SpringMVC相关的包,还需要导入 commons-fileupload-1.2.1.jar 和  ...

  6. 【web】a标签点击时跳出确认框

    [web]a标签点击时跳出确认框 https://blog.csdn.net/michael_ouyang/article/details/52765575需求如下: 在跳转链接前,需要判断该用户是否 ...

  7. ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案 try.dot.net 的正确使用姿势 .Net NPOI 根据excel模板导出excel、直接生成excel .Net NPOI 上传excel文件、提交后台获取excel里的数据

    ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案   ASP.NET Core 从2.2版本开始,采用了一个新的名为Endpoint的路由方案,与原来的方案在使用上差别不 ...

  8. iOS UILabel设置居上对齐,居中对齐,居下对齐

    在iOS中默认的UILabel中的文字在竖直方向上仅仅能居中对齐,博主參考国外站点.从UILabel继承了一个新类,实现了居上对齐,居中对齐,居下对齐.详细例如以下: // //  myUILabel ...

  9. nmapport状态解析

  10. 使用Openssl的AES加密算法

    原文链接: http://blog.csdn.net/yasi_xi/article/details/13997337 Openssl是很常见的C接口的库,个人觉得易用.以下是AES加密的使用备忘.如 ...