close operations are usually implemented in `finally` block