Static Analyzer for Solidity
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
slither/tests/e2e/solc_parsing/test_data/trycatch-0.6.0.sol

56 lines
1.4 KiB

4 years ago
contract ERC20 {
function balanceOf(address) public view returns (uint) {
return 0;
}
}
contract C {
function tryCatchFunctionCall() public {
uint actualBalance;
try ERC20(msg.sender).balanceOf(address(this)) returns (uint balance) {
actualBalance = balance;
} catch Error(string memory err) {
revert(err);
}
try ERC20(msg.sender).balanceOf(address(this)) returns (uint balance) {
actualBalance = balance;
} catch (bytes memory err) {
revert(string(err));
}
try ERC20(msg.sender).balanceOf(address(this)) returns (uint balance) {
actualBalance = balance;
} catch Error(string memory err) {
revert(err);
} catch (bytes memory err) {
revert(string(err));
}
try ERC20(msg.sender).balanceOf(address(this)) returns (uint) {
} catch {
actualBalance = 0;
}
try ERC20(msg.sender).balanceOf(address(this)) returns (uint balance) {
uint c;
for (uint i; i < balance; i++) {
c++;
}
} catch {
}
4 years ago
}
function tryCatchContractDeployment() public {
try new ERC20() returns (ERC20 deployed) {
try deployed.balanceOf(address(this)) returns (uint) {
} catch {
}
} catch {
}
}
}