Modern software systems are becoming more complex in many ways and have to cope with a growing number of abnormal situations which, in turn, are increasingly complex to handle. The most general way of dealing with these problems is by incorporating exception handling techniques in software design. In the past, various exception handling models and techniques have been proposed and many of them are part of practical languages and software composition technologies.This book is composed of five parts, which deal with topics related to exception handling in the context of programming language models, design methodologies, concurrent and distributed systems, applications and experiences, and large-scale systems such as database and workflow process mangagement systems. The 17 coherently written chapters by leading researchers competently address a wide range of issues in exception handling.