第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内部执行顺序&外部语句何种情况下执行