Tratando Exceções
/*
* Main.java
*
* Created on 13 de Março de 2007, 20:13
*/
package exception;
import java.awt.*;
import java.awt.event.*;
import java.text.DecimalFormat;
import javax.swing.*;
/**
*
* @author adrw
*/
public class Main extends JFrame implements ActionListener
{
private JTextField input1, input2, output;
private int num1, num2;
private double resultado;
/** Creates a new instance of Main */
public Main()
{
super("Demonstração de
Exceção");
Container container = getContentPane();
container.setLayout( new GridLayout(3, 2)
);
container.add( new JLabel("Digite um
numero:", SwingConstants.RIGHT) );
input1 = new JTextField(10);
container.add( input1 );
container.add( new JLabel("Digite o denominador:",
SwingConstants.RIGHT) );
input2 = new JTextField(10);
container.add( input2 );
input2.addActionListener( this );
container.add( new JLabel("Resultado:",
SwingConstants.RIGHT) );
output = new JTextField(10);
container.add( output );
setSize( 400, 100 );
setVisible( true );
}
public void actionPerformed( ActionEvent event )
{
DecimalFormat precision = new DecimalFormat(
"0.00" );
output.setText("");
try {
num1 = Integer.parseInt(
input1.getText() );
num2 = Integer.parseInt(
input2.getText() );
resultado = divisao( num1,
num2 );
output.setText( precision.format(
resultado ) );
}
catch ( NumberFormatException numberFormatException
)
{
JOptionPane.showMessageDialog(
this, "Você precisa digitar 2 numero", "Numeros invalidos",
JOptionPane.ERROR_MESSAGE
);
}
catch ( CMatematicaException mat )
{
JOptionPane.showMessageDialog(
this, mat.toString(), "Numeros invalidos", JOptionPane.ERROR_MESSAGE
);
}
}
public double divisao( int vnum1, int vnum2 )
throws CMatematicaException
{
if ( vnum2 == 0 )
{
throw new
CMatematicaException();
}
return ( double ) vnum1 / vnum2;
}
/**
* @param args the command line arguments
*/
public static void main(String[] args)
{
Main app = new Main();
app.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE
);
}
private class CMatematicaException extends ArithmeticException
{
public CMatematicaException()
{
super("Divisao por
zero!");
}
public CMatematicaException( String mensagem
)
{
super( mensagem );
}
}
}
|