CODEDRAGON ㆍSecurity/Blockchain
에러 핸들링(Error Handling)
· 이더리움 스마트 계약은 Exception을 만나면 State-Reverting, 즉 모든 변경사항을 원래대로 복원하고 Caller에서 에러를 반환하고 종료하게 됩니다.
· revert, require를 통해서 exception을 발생시킬 수 있습니다.
거래 전송에 실패하게 될 경우
거래의 경우 거래 전송에 실패하게 되면 전송에 소모된 GAS는 소진되고 남은 GAS와 송신된 Ether가 송신자에게 반환되며 모든 상태를 복원하고 종료하게 됩니다.
스마트 계약의 경우
스마트 계약의 경우도 마찬가지로 스마트 계약의 실행으로 변환된 상태는 호출되기 이전 상태로 복원이 되고 그때까지 스마트 계약을 실행하는 데 소모된 가스는 소진됩니다. 또한 남은 가스와 스마트 계약에 송금된 Ether는 송신자에게 되돌려주며 오류를 리턴하고 종료합니다. 그런데 이때 에러가 발생합니다. Error의 가장 대표적인 사례는 Gas Limit를 초과하는 경우입니다.
Gas Limit 초과
· Gas Limit를 충분히 할당하지 않으면 Gas Limit Exception이 발생하게 되어 GAS의 낭비가 발생할 수 있으니 주의가 필요합니다.
· Solidity는 에러 처리에 있어서 try / catch와 같은 exception handling을 지원하지 않고 오류를 리턴하게 됩니다.
'Security > Blockchain' 카테고리의 다른 글
Ether 송금과 수수료 (0) | 2019.08.18 |
---|---|
스마트 계약 활용 (0) | 2019.07.28 |
View Functions, State를 변환시키는 경우 (0) | 2019.06.23 |
비트코인 가치 (0) | 2019.06.08 |
이더리움의 송금 및 채굴 (0) | 2019.06.03 |