`

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_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/OTP 中文手册(R11B)

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

    Erlang中的模块与模式匹配介绍

    Erlang提供了两种异常捕捉机制:try-catch和catch。try-catch表达式用于捕获异常并获取概括信息,而catch表达式提供了详细的栈跟踪信息,这对于调试和错误处理非常有用。例如: ```erlang try some_function() ...

    www.erldoc.com:erlang 中文手册 https

    1. 错误处理:Erlang使用异常(exception)处理机制,`try...catch`语句用于捕获和处理异常。 2. 调试工具:Erlang提供诸如observer、dbg等工具,帮助开发者跟踪进程、设置断点和查看运行状态。 六、Erlang的并发与...

    Erlang最佳实践

    通过使用try-catch结构,可以捕获并处理运行时异常,确保系统的连续运行。同时,Erlang提供了强大的错误报告和日志记录机制,帮助开发者诊断和解决故障。 #### 五、进程、服务器与消息 Erlang的核心特性之一是轻量...

    Eralng笔试题

    ### Erlang 编程练习题解析 #### Q1:编写一个函数 `sum/2`,该函数接收两个整数 `N` 和 `M`(其中 `N` 小于等于 `M`),返回 `N` 和 `M` 之间的所有整数之和。如果 `N` 大于 `M`,则返回错误。 **示例:** ```...

    RabbitMq安装详细步骤

    2. **重新安装 Erlang/OTP:** 确保正确安装并配置 Erlang/OTP 环境。 3. **服务重新配置:** 使用上述命令重新配置服务。 **问题二:VS 无法正常安装** 如果在 Visual Studio 中遇到安装问题,可能是因为环境变量...

Global site tag (gtag.js) - Google Analytics