classThrowTest3{staticvoidProcessString(strings){if(s==null){thrownewArgumentNullException();}}staticvoidMain(){try{strings=null;ProcessString(s);}// Most specific:catch(ArgumentNullExceptione){Console.WriteLine("{0} First exception caught.",e);}// Least specific:catch(Exceptione){Console.WriteLine("{0} Second exception caught.",e);}}}/* Output: System.ArgumentNullException: Value cannot be null. at Test.ThrowTest3.ProcessString(String s) ... First exception caught.*/