You can roll your own with call/cc, but I'm not aware of any out-of-the-box implementation in Schemes. Racket has an exception-handling mechanism, but it's similar to ones from other languages and it doesn't offer restarts. It does also have a more powerful notion of delimited continuations and continuation marks, which would make rolling your own condition system a bit easier (well, discounting the initial research as to what the heck they are in the first place :))