Ans : Defer block is executed just before return statement or exit of block. Let's have a look to following chunk of code for better understanding
func defer() {
print("Start")
var value: String?
defer {
if let v = value {
print("Ending execution of \(v)")
}
}
value = "defer function"
print("End")
}
So printing sequence is like following :
Start
End
Ending execution of defer function
So in short defer block will be called lastly in the current block. It will be executed in any case like before return, before the break, before throw exception. Yes, if exception comes, then also defer block will be called before program crash or going to exception.
func defer() {
print("Start")
var value: String?
defer {
if let v = value {
print("Ending execution of \(v)")
}
}
value = "defer function"
print("End")
}
So printing sequence is like following :
Start
End
Ending execution of defer function
So in short defer block will be called lastly in the current block. It will be executed in any case like before return, before the break, before throw exception. Yes, if exception comes, then also defer block will be called before program crash or going to exception.
If there is multiple defer block in same method, Then defer block will execute from down to up side.
No comments:
Post a Comment
Thanks