So it's intentional. Thank you. I hear what you say, but shouldn't that be something that gets handled by raise? My implementation isn't what I'm worried about here, I already wrote the handler, and the implementation is intended for end-users to write scripts in. It's just that I was surprised by what struck me as non-intuitive behavior. I know exit! bypasses handlers. It always struck me that this was a means of getting around 'ensure'. I've always viewed exit as being for exiting and raise being for raising exceptions. Is there something I'm missing? -- Posted via http://www.ruby-forum.com/.