If the defer block is called during a panic, this will hide the initial panic call.  Especially if `os.Create` failed, `fpid` will be a nil pointer and the panic that will show up is a nil pointer reference.