`

erlang异常--try...catch

阅读更多
触发异常
throw(Term)
exit(Reason)
erlang:error(Reason)

特列:exit(normal),进程调用它所跑出的异常不会被捕获,该进程正常终止


try...catch
try
    unsafe_fun()
catch
    ErrType:Reason ->
        do_something()
end.


try...of...catch
try
    unsafe_fun()
of
    O ->
        io:format("do nothing");
    N ->
        do_something_with(N)
catch
    _:_ ->
        do_something()
end

of...之间的内容,不在try的保护范围


try...after 不管try中执行情况如何,after都会执行,这个机制通常用于资源释放
{ok, Fd} = file:open("test.txt", [read]),
try
    do_something_with_file(Fd)
after
    file:close(Fd)
end

分享到:
评论

相关推荐

    erlang_版本24.3.4.4

    - **错误处理**:Erlang采用异常处理机制,鼓励编写无副作用的纯函数,有助于编写容错性强的代码。 - **模式匹配**:Erlang的模式匹配功能允许在函数定义中使用模式来匹配和解构数据结构,简化了代码编写。 - **...

    erlang压缩包.rar

    - **错误处理**:Erlang的异常处理通过`try...catch...after`语句实现,允许优雅地处理错误情况。 了解了这些基础知识后,你可以开始编写Erlang程序,构建自己的并发应用,体验Erlang带来的高效和可靠性。记得在...

    RabbitMQ:安装、配置与使用初探

    } catch (Exception e) { e.printStackTrace(); } } } ``` 以上代码创建了一个名为 `hello` 的队列,并向队列发送了一条消息 `"Hello RabbitMQ!"`。这里使用了 RabbitMQ Java 客户端库 `amqp-client` 版本 ...

    erlang程序设计相关例子程序

    4. **try_test.beam** - 这可能是用于测试异常处理的代码,Erlang使用`try...catch...finally`结构来捕获和处理异常,这在编写健壮的系统时非常关键。 5. **area_server_final.beam** - 这可能是一个服务器实现,...

    erlang_standard_snippets-源码.rar

    `try...catch...after`语句可用于处理异常情况,确保系统能优雅地处理错误并恢复。 4. **模块与函数(Modules and Functions)**: Erlang的代码组织通常以模块(modules)为单位,每个模块可以包含多个函数。在源码...

    erlang中文基础教程

    1. **异常处理**:Erlang使用`try...catch...end`结构处理异常,捕获错误并进行相应处理。 2. **错误日志**:Erlang系统提供了标准的日志功能,帮助开发者调试和排查问题。 **Erlang的应用领域** 1. **实时系统**...

    erlang 深度分析

    - **错误处理**: 使用Erlang特有的异常处理机制,如`try-catch`,来确保系统的健壮性。 - **单元测试**: 利用`eunit`框架编写单元测试,确保代码质量。 - **代码规范**: 遵循社区约定的代码风格和命名规则,提高代码...

    erlang 入门练习

    通过`try...catch...after`语句,可以捕获并处理运行时错误。Erlang进程之间的独立性使得即使某个进程崩溃,其他进程也能继续运行,从而保证系统的整体稳定性。 Erlang还提供了丰富的标准库,如`io`模块用于输入...

    一种傻纸牌游戏的Erlang实现

    - **Error Handling**:Erlang的错误处理通常通过`try...catch`结构实现,确保程序在遇到异常时能够优雅地恢复或终止。 4. **并发与通信**: - **Erlang进程间的通信**:如果游戏涉及到多个玩家,每个玩家可能会...

    erlang 学习笔记1

    4. **异常处理**:Erlang使用`try...catch...throw`语句来处理错误,异常可以被显式抛出,也可以由运行时系统隐式抛出。 5. ** OTP(Open Telecom Platform)**:OTP是Erlang生态系统的核心,提供了一套用于构建...

    erlang 中文,chm参考文档

    5. **错误处理**:讲解Erlang的异常处理机制,如try-catch-finally语句。 6. **模式和类型**:涵盖模式匹配和类型系统的细节,以及如何进行类型检查。 7. **编译和运行**:指导如何编译和运行Erlang程序,以及调试...

    erlanghandbook

    Erlang provides robust error handling mechanisms, including try-catch constructs (`try ... catch ... end`) and explicit error return values. This approach allows for graceful degradation and recovery ...

    Erlang程序设计.pdf

    - **异常处理**:Erlang提供了异常处理机制,如`try...catch`语句,用于捕获和处理运行时错误。 - **进程组**:可以将一组相关的进程组织成一个进程组,这样在处理故障时可以更容易地找到和替换故障进程。 #### 4. ...

    Erlang中文手册

    - **异常处理**: 使用 `try...catch` 语句捕获异常。 - **示例**: - `try Func() catch Class:Reason -> HandleError end.` **1.4.3 增强健壮性之后的大型例子** - **示例**: 实现一个更复杂的聊天室应用,增加...

    erlang程序设计(第二版)随书源码

    `try...catch...after`语句用于处理异常。 6. **模块系统**:Erlang的模块定义了函数的集合,`-export`指定对外公开的函数,`-import`导入其他模块的函数,`-include`引入头文件。 7. **分布式特性**:Erlang节点...

    Erlang程序设计第2版附书代码

    4. **错误处理**:通过代码示例,你可以学习如何优雅地处理错误,比如使用`try...catch...after`语句。 5. **模式匹配和函数选择**:书中可能包含复杂的模式匹配示例,展示如何根据不同的输入选择合适的函数来执行...

    [Erlang程序设计]源代码

    源代码中的错误处理通常涉及到`try...catch...after`语句,它允许在捕获异常后进行清理工作。此外,Erlang的`exit/1`和`link/1`等机制,用于处理进程间的依赖和错误传播,确保系统的健壮性。 **五、模块与导出** ...

    Erlang/OTP 中文手册(R11B)

    - **错误处理**:使用`try...catch...after`语句进行异常处理,以及`error`和`exit`来控制程序流程。 ### 2. OTP设计原则 OTP是Erlang生态系统的关键部分,它包括: - **行为(Behaviours)**:如gen_server、gen...

Global site tag (gtag.js) - Google Analytics