Understanding Error Handling Vulnerabilities in Solidity