original.sol 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. interface Unknown {
  2. function empty() external;
  3. function lookup() external returns(uint256);
  4. function lookupMultipleValues() external returns (uint256, uint256, uint256, uint256, uint256);
  5. function doSomething() external;
  6. function doSomethingElse() external;
  7. function handleError() external;
  8. }
  9. contract TryStatement {
  10. Unknown unknown;
  11. function test() external {
  12. try unknown.empty() {} catch {}
  13. try unknown.lookup() returns (uint256) {} catch Error(string memory) {}
  14. try unknown.lookup() returns (uint256) {} catch Error(string memory) {} catch (bytes memory) {}
  15. try unknown
  16. .lookup() returns (uint256
  17. ) {
  18. } catch ( bytes memory ){}
  19. try unknown.empty() {
  20. unknown.doSomething();
  21. } catch {
  22. unknown.handleError();
  23. }
  24. try unknown.empty() {
  25. unknown.doSomething();
  26. } catch Error(string memory) {}
  27. catch Panic(uint) {}
  28. catch {
  29. unknown.handleError();
  30. }
  31. try unknown.lookupMultipleValues() returns (uint256, uint256, uint256, uint256, uint256) {} catch Error(string memory) {} catch {}
  32. try unknown.lookupMultipleValues() returns (uint256, uint256, uint256, uint256, uint256) {
  33. unknown.doSomething();
  34. }
  35. catch Error(string memory) {
  36. unknown.handleError();
  37. }
  38. catch {}
  39. // comment1
  40. try /* comment2 */ unknown.lookup() // comment3
  41. returns (uint256) // comment4
  42. {} // comment5
  43. catch /* comment6 */ {}
  44. // comment7
  45. try unknown.empty() { // comment8
  46. unknown.doSomething();
  47. } /* comment9 */ catch /* comment10 */ Error(string memory) {
  48. unknown.handleError();
  49. } catch Panic /* comment11 */ (uint) {
  50. unknown.handleError();
  51. } catch {}
  52. }
  53. }