/* C# Programming Tips & Techniques by Charles Wright, Kris Jamsa Publisher: Osborne/McGraw-Hill (December 28, 2001) ISBN: 0072193794 */ // Rethrow.cs -- Demonstrates rethrowing an exception from a method. // // Compile this program with the following command line: // C:>csc Rethrow.cs // namespace nsRethrow { using System; using System.IO; public class Rethrow { static public void Main () { while (true) { Console.Write ("Please enter a file name (return to exit): "); string FileName = Console.ReadLine (); if (FileName.Length == 0) break; try { ReadFile (FileName); break; } catch (IOException e) { if (e is FileNotFoundException) Console.WriteLine ("The file " + FileName + " was not found"); } catch (Exception e) { Console.WriteLine (e.Message + " "); break; } } } static public void ReadFile (string FileName) { FileStream strm; StreamReader reader; try { strm = new FileStream (FileName, FileMode.Open); reader = new StreamReader (strm); string str = reader.ReadToEnd (); Console.WriteLine (str); } catch (IOException e) { // If file not found, go back and get another name if (e is FileNotFoundException) throw (e); // Code here to handle other IOException classes Console.WriteLine (e.Message); throw (new IOException()); } } } }