第141篇 Try Catch

Posted wonderBlock

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第141篇 Try Catch相关的知识,希望对你有一定的参考价值。

本文介绍如何利用try-catch处理智能合约中的异常。

1.try-catch

solidity中,try-catch只能被用于external函数或创建合约时constructor(被视为external函数)的调用。

基本语法如下:

        try externalContract.f() 
            // call成功的情况下 运行一些代码
         catch 
            // call失败的情况下 运行一些代码
        

其中externalContract.f()是某个外部合约的函数调用,try模块在调用成功的情况下运行,而catch模块则在调用失败时运行。

同样可以使用this.f()来替代externalContract.f()this.f()也被视作为外部调用,但不可在构造函数中使用,因为此时合约还未创建。

如果调用的函数有返回值,那么必须在try之后声明returns(returnType val),并且在try模块中可以使用返回的变量;如果是创建合约,那么返回值是新创建的合约变量。

        try externalContract.f() returns(returnType val)
            // call成功的情况下 运

以上是关于第141篇 Try Catch的主要内容,如果未能解决你的问题,请参考以下文章

错误检测------try-catch语句 From 《高程3》

Java try/catch/finally内部执行顺序&外部语句何种情况下执行

Java:简述try-catch-finally异常捕获

Java:简述try-catch-finally异常捕获

Java学习笔记之三十三详解Java中try,catch,finally的用法及分析

javascript 多层嵌套try catch问题