import java.io.*;
// A Java application to demonstrate making your own Exception class
// This program catches the exception when the word "client" is
// entered incorrectly.
public class TestException
{
static String s = "";
//--------------------------------------------------------
public static void main (String args[])
{
InputStreamReader is = new InputStreamReader(System.in);
BufferedReader buf = new BufferedReader(is);
System.out.println("Enter the word you cannot spell: ");
try
{
s = buf.readLine();
}
catch (IOException e)
{
System.out.println("IOException was " + e.getMessage());
}
try
{
checkSpelling(); // this method throws SpellException
}
catch (SpellException se) // but it is caught here
{
System.out.println("Spell exception was: " + se.getError());
}
} // end main
//----------------------------------------------------------
// Check spelling of typed in word. Throw exception if wrong.
// Note how this method specifies that it throws such and such
// exception. Does not have to be caught here.
private static void checkSpelling() throws SpellException
{
if (s.equalsIgnoreCase("client"))
System.out.println("OK");
else
throw new SpellException("Cannot spell client");
}
} // end main class
//***********************************************
// Custom exception class that descends from Java's Exception class.
class SpellException extends Exception
{
String mistake;
//----------------------------------------------
// Default constructor - initializes instance variable to unknown
public SpellException()
{
super(); // call superclass constructor
mistake = "unknown";
}
//-----------------------------------------------
// Constructor receives some kind of message that is saved in an instance variable.
public SpellException(String err)
{
super(err); // call super class constructor
mistake = err; // save message
}
//------------------------------------------------
// public method, callable by exception catcher. It returns the error message.
public String getError()
{
return mistake;
}
}