using exceptions for flow control can make for some handy program designs the important thing to take from this discussion is that exceptions are not bad thing that we should try to avoid having an exception occur does not mean that you should have prevented this exceptional circumstance from happening ratherit is just powerful way to communicate information between two sections of code that may not be directly calling each other case study we've been looking at the use and handling of exceptions at fairly low level of detail--syntax and definitions this case study will help tie it all in with our previous so we can see how exceptions are used in the larger context of objectsinheritanceand modules todaywe'll be designing simple central authentication and authorization system the entire system will be placed in one moduleand other code will be able to query that module object for authentication and authorization purposes we should admitfrom the startthat we aren' security expertsand that the system we are designing may be full of security holes our purpose is to study exceptionsnot to secure system it will be sufficienthoweverfor basic login and permission system that other code can interact with laterif that other code needs to be made more securewe can have security or cryptography expert review or rewrite our modulepreferably without changing the api authentication is the process of ensuring user is really the person they say they are we'll follow the lead of common web systems todaywhich use username and private password combination other methods of authentication include voice recognitionfingerprint or retinal scannersand identification cards authorizationon the other handis all about determining whether given (authenticateduser is permitted to perform specific action we'll create basic permission list system that stores list of the specific people allowed to perform each action in additionwe'll add some administrative features to allow new users to be added to the system for brevitywe'll leave out editing of passwords or changing of permissions once they've been addedbut these (highly necessaryfeatures can certainly be added in the future