Solidity
拋出後合約狀態變數變化
是否有可能更改狀態變數然後拋出錯誤,以便保持狀態。例如:
uint minAmount = 1 ether; uint state; function payDeposit() payable { if(msg.value < minAmount ) { state = 2; throw; } state = 1; }
在上面的範例中,未設置狀態變數。有沒有辦法解決這個問題?
這是不可能的,因為
throw
確保呼叫沒有副作用,並且所有的氣體都被消耗掉了。