Anda di halaman 1dari 58

Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra

Cap
Cap

tulo 10
tulo 10
Tratamento de Exce
Tratamento de Exce

es
es
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Objetivos do Captulo
Apresentar o conceito de exceo e caracterizar as
situaes sob as quais as excees se manifestam.
Indicar os mecanismos que podem ser empregados para a
captura e tratamento de excees.
Explorar a hierarquia de excees composta pelas classes
da API do Java.
Apontar o que caracteriza as checked exceptions e as
unchecked exceptions e o que distingue estes dois grupos de
excees.
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Introduo
Exceo: condio anormal
Causas:
Falhas na implementao
Falhas na operao
O responsvel
Qualidade de software
Tolerncia falhas
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Introduo
Cdigo 10.1 Excecao.java
O aplicativo deve solicitar um nmero inteiro e exibir o seu cubo.
Utilize um dilogo grfico para solicitar e exibir os dados.
Execute o aplicativo e informe um dado que no possa ser
convertido para o tipo int.
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Estrutura try-catch
Bloco try
Delimita instrues que podem gerar excees.
Um bloco catch para cada tipo de exceo.
Tipo = classe.
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Estrutura try-catch
Sintaxe:
try {
<instrues>
}
catch (<tipo_da_exceo> <nome_da_exceo>) {
<tratamento>
}
catch (<tipo_da_exceo> <nome_da_exceo>) {
<tratamento>
}
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Estrutura try-catch
Tratamento genrico:
Uso de tipo genrico: Exception
Sintaxe:
try {
<instrues>
}
catch (Exception ex) {
<tratamento>
}
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Estrutura try-catch
Cdigo 10.2 Try.java
Captar dois nmeros e dividir o primeiro pelo segundo.
Utilizar dilogos grficos para captar os nmeros e exibir o
resultado.
Se ocorrer uma exceo durante a execuo destas instrues,
o programa deve exibir uma mensagem de erro e encerrar o
aplicativo.
A mensagem de erro deve conter:
O nome da classe que representa a exceo.
A mensagem de erro padro desta exceo.
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Estrutura try-catch
Cdigo 10.2 Try.java
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Estrutura try-catch
Cdigo 10.3 TratamentoMultiplo.java
Captar dois nmeros e dividir o primeiro pelo segundo.
Utilizar dilogos grficos para captar os nmeros e exibir o
resultado.
Se ocorrer uma exceo durante a execuo destas instrues,
o programa deve exibir uma mensagem de erro especfica para
cada tipo de exceo que pode ser disparada e deve encerrar o
aplicativo.
Exiba as seguintes mensagens de erro:
Em caso de NumberFormatException: Nmero invlido!
Em caso de ArithmeticExceptino: O divisor no pode ser zero!
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Estrutura try-catch
Cdigo 10.3 TratamentoMultiplo.java
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Estrutura try-catch
Cdigo 10.4 ValidaInteiro.java
Solicitar um nmero inteiro e indicar se ele vlido.
Utilizar dilogos grficos.
Se o dilogo de entrada for cancelado, encerrar o aplicativo.
Se o nmero no for vlido, exibir mensagem de erro e solicit-lo
novamente.
Regras para validao do nmero:
Deve ser inteiro.
Deve ser maior ou igual a 1.
Deve ser menor ou igual a 10.
Exibir uma mensagem de erro especfica para cada uma destas
situaes.
Lanar uma IllegalArgumentException nos dois ltimos casos.
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Estrutura try-catch
Cdigo 10.4 ValidaInteiro.java
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Bloco Finally
Objetivo:
Garantir a execuo de determinadas instrues.
Requisito:
Vnculo com estrutura try-catch
Sintaxe:
try {
<instrues>
}
catch (<tipo_da_exceo> <nome_da_exceo>) {
<tratamento>
}
finally {
<instrues>
}
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Bloco Finally
Cdigo 10.5 Finally.java
Solicitar um nmero inteiro e indicar se ele vlido.
Utilizar dilogos grficos.
Se o dilogo de entrada for cancelado, encerrar o aplicativo.
Se o nmero no for vlido, exibir mensagem de erro.
Regras para validao do nmero:
Deve ser inteiro.
Deve ser igual ou superior a -2.147.483.648.
Deve ser igual ou inferior a 2.147.483.647.
Instrues de finalizao que devem ser garantidas:
Mensagem de concluso: Operao encerrada!.
Liberao imediata da memria utilizada pelo aplicativo.
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Bloco Finally
Cdigo 10.5 Finally.java
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
A Hierarquia das Excees
Uma exceo uma classe
Cada classe tm uma ancestral direta
Pai ou me?
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
A Hierarquia das Excees
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Tratamento Obrigatrio e Tratamento Opcional
Primeiro grupo: checked exceptions
Tratamento obrigatrio
Classes que no derivam de RuntimeException
Condies invlidas
Causas fora do controle do programador
Exemplos:
Problemas fsicos na rede
Queda do servidor de BD
Ausncia de arquivos
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Tratamento Obrigatrio e Tratamento Opcional
Segundo grupo: unchecked exceptions
Tratamento opcional
Classe RuntimeException e suas descendentes
Defeitos no cdigo do aplicativo (bugs)
Podem ser evitadas pelo programador
Adaptao da lgica de seu algoritmo
Exemplos:
Executar mtodo de objeto nulo
Acessar posio inexistente de vetor
Converter dado captado do usurio
H casos em que o programador no pode evit-las
Trat-las como se fossem checked exceptions
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Tratamento de Checked Exceptions
Cdigo 10.6 TratamentoObrigatorio.java
Ler o arquivo Excecao.java e exibir seu contedo.
Editar e compilar sem nenhum tratamento de exceo.
Analisar as mensagens de erro do compilador.
Implementar um tratamento para cada checked exception.
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Tratamento de Checked Exceptions
Cdigo 10.6 TratamentoObrigatorio.java
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Tratamento de Checked Exceptions
Cdigo 10.6 TratamentoObrigatorio.java.
1 import java.io.FileReader;
2 import java.io.BufferedReader;
3
4 public class TratamentoObrigatorio {
5 public static void main(String[] args) {
6 String texto = "";
7 FileReader fr = new FileReader("Excecao.java");
8 BufferedReader br = new BufferedReader(fr);
9
10 while(true) {
11 String linha = br.readLine();
12 if(linha == null) break;
13 texto += linha + "\n";
14 }
15
16 br.close();
17 fr.close();
18 System.out.println(texto);
19 }
20 }
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Tratamento de Checked Exceptions
Cdigo 10.7 TratamentoObrigatorio.java.
1 import java.io.FileReader;
2 import java.io.BufferedReader;
3 import java.io.FileNotFoundException;
4 import java.io.IOException;
5
6 public class TratamentoObrigatorio {
7 public static void main(String[] args) {
8 String texto = "";
9 FileReader fr = null;
10
11 try {
12 fr = new FileReader("Excecao.java");
13 }
14 catch (FileNotFoundException nfex) {
15 System.out.println("Arquivo no encontrado!");
16 System.exit(0);
17 }
18
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Tratamento de Checked Exceptions
Cdigo 10.7 TratamentoObrigatorio.java.
19 try {
20 BufferedReader br = new BufferedReader(fr);
21
22 while(true) {
23 String linha = br.readLine();
24 if(linha == null) break;
25 texto += linha + "\n";
26 }
27
28 br.close();
29 fr.close();
30 }
31 catch (IOException ioex) {
32 System.out.println("Erro durante a leitura do arquivo!");
33 System.exit(0);
34 }
35
36 System.out.println(texto);
37 System.exit(0);
38 }
39 }
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Tratamento para NullPointerException
NullPointerException
Descendente direta de RuntimeException
Uma unchecked exception
Causas comuns:
Acessar ou modificar um atributo de um objeto nulo.
Executar um mtodo de um objeto nulo.
Acessar ou modificar um elemento de um vetor nulo.
Recuperar a quantidade de elementos de um vetor nulo.
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Tratamento para NullPointerException
Cdigo 10.8 TratamentoNull.java
Solicitar o nome do usrio.
Converter seu nome para maisculo e exibi-lo.
Utilizar dilogos grficos.
Experimentar cancelar o dilogo de entrada sem ter previsto isso
no algoritmo do aplicativo.
Corrigir o defeito do programa com uma estrutura de deciso.
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Tratamento para NullPointerException
Cdigo 10.8 TratamentoNull.java
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Tratamento para NullPointerException
Cdigo 10.8 TratamentoNull.java.
1 import javax.swing.JOptionPane;
2
3 public class TratamentoNull {
4 public static void main(String[] args) {
5 String nome = JOptionPane.showInputDialog("Informe seu nome");
6 nome = nome.toUpperCase();
7 JOptionPane.showMessageDialog(null,"Seu nome: " + nome);
8 System.exit(0);
9 }
10 }
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Tratamento para NullPointerException
Cdigo 10.9 TratamentoNull.java.
1 import javax.swing.JOptionPane;
2
3 public class TratamentoNull {
4 public static void main(String[] args) {
5 String nome = JOptionPane.showInputDialog("Informe seu nome");
6 if (nome == null) System.exit(0);
7 nome = nome.toUpperCase();
8 JOptionPane.showMessageDialog(null,"Seu nome: " + nome);
9 System.exit(0);
10 }
11 }
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Tratamento para ArrayIndexOutOfBoundsException
ArrayIndexOutOfBoundsException
Descendente indireta de RuntimeException
Uma unchecked exception
Causas comuns:
Acesso a elemento de vetor/matriz com ndice ilegal.
Exemplo:
int[ ] fibonacci = {1,1,2,3,5,8,13,21};
int n = fibonacci[8];
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Tratamento para ArrayIndexOutOfBoundsException
Cdigo 10.10 TratamentoArray.java
Declare, instancie e inicialize um vetor de strings com o nome de
quatro amigos.
Implemente um lao que percorra este vetor e imprima o
contedo de cada elemento.
Experincia: contador de 1 ao tamanho do vetor.
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Tratamento para ArrayIndexOutOfBoundsException
Cdigo 10.10 TratamentoArray.java
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Tratamento para ArrayIndexOutOfBoundsException
Cdigo 10.10 TratamentoArray.java.
1 public class TratamentoArray {
2 public static void main(String[] args) {
3 String[] amigos = {"Cludia","Vanessa","Raul","Sidnei"};
4
5 for (byte num = 1; num <= amigos.length; num++)
6 System.out.println("Amigo " + num + ": " + amigos[num]);
7 }
8 }
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Tratamento para ArrayIndexOutOfBoundsException
Cdigo 10.11 TratamentoArray.java.
1 public class TratamentoArray {
2 public static void main(String[] args) {
3 String[] amigos = {"Cludia","Vanessa","Raul","Sidnei"};
4
5 for (byte num = 0; num < amigos.length; num++)
6 System.out.println("Amigo " + (num + 1) + ": " + amigos[num]);
7 }
8 }
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Tratamento para InputMismatchException
InputMismatchException
Descendente indireta de RuntimeException
Uma unchecked exception
Disparada por mtodos da classe Scanner
Causas comuns:
O termo recuperado no coincide com o padro esperado.
Exemplo:
Mtodo nextInt( ) invocado
Usurio digita: 55,33
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Tratamento para InputMismatchException
Cdigo 10.12 TratamentoInput.java
Captar a idade do usurio.
Utilizar mtodo nextByte( ).
Experimente deixar sem tratamento de exceo.
Implemente um tratamento adequado.
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Tratamento para InputMismatchException
Cdigo 10.12 TratamentoInput.java.
1 import java.util.Scanner;
2
3 public class TratamentoInput {
4 public static void main(String[] args) {
5 Scanner scan = new Scanner(System.in);
6
7 System.out.print("Informe sua idade:\t");
8 byte idade = scan.nextByte();
9
10 System.out.println("Sua idade:\t\t" + idade);
11 }
12 }
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Tratamento para InputMismatchException
Cdigo 10.13 TratamentoInput.java.
1 import java.util.Scanner;
2 import java.util.InputMismatchException;
3
4 public class TratamentoInput {
5 public static void main(String[] args) {
6 byte idade = -1;
7
8 while (idade < 0) {
9 System.out.print("\nInforme sua idade:\t");
10 Scanner scan = new Scanner(System.in);
11
12 try {
13 idade = scan.nextByte();
14 }
15 catch (InputMismatchException ime) {
16 System.out.println("Idade invlida!");
17 }
18 }
19
20 System.out.println("Sua idade:\t\t" + idade);
21 }
22 }
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Tratamento para Outras Excees
Tipo: checked exceptions
O compilador avisa
Tratamento obrigatrio com estrutura try-catch
Tipo: unchecked exceptions
Causa sob rea de domnio do programador
Alterar algoritmo do programa
No utilizar estrutura try-catch
Exemplos:
o NullPointerException
o ArrayIndexOutOfBoundsException
o ArithmeticException
Causa fora da rea de domnio do programador
Tratar com estrutura try-catch
Exemplos:
o InputMismatchException
o NumberFormatException
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Exerccio 1
Crie um novo aplicativo, chamado Exercicio1001, que solicite
o nome e o salrio do usurio e calcule o valor que a empresa
deve depositar em sua conta do FGTS (Fundo de Garantia por
Tempo de Servio).
Este aplicativo deve realizar toda interao com o usurio
atravs da janela de comando.
Procure implementar este aplicativo de modo que sua
interao com o usurio se estabelea exatamente como
voc pode observar na figura do slide seguinte.
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Exerccio 1
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Exerccio 1
Se o nome informado no for vlido, o aplicativo deve
imprimir uma mensagem de erro e solicit-lo novamente.
O nome deve conter de 5 a 50 caracteres.
O nome no pode conter nmeros.
Se o salrio informado no for vlido, o aplicativo deve
imprimir uma mensagem de erro e solicit-lo novamente.
O salrio deve ser um nmero fracionrio.
O salrio deve ser igual ou superior a R$ 465,00.
Ao final, o aplicativo deve imprimir os dados que sero
registrados no recibo de pagamento do usurio:
Seu nome.
Seu salrio.
O FGTS a ser depositado.
O valor do FGTS deve ser calculado pelo aplicativo e
corresponde a 8% do salrio.
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Exerccio 2
Crie um novo aplicativo, chamado Exercicio1002, que solicite
um nmero inteiro e indique se ele um nmero primo.
Os nmeros primos so nmeros inteiros com apenas dois
divisores: ele mesmo e o nmero um.
O 17 um exemplo de nmero primo porque s pode ser dividido
por ele mesmo e por um.
Este aplicativo deve realizar toda interao com o usurio
atravs da janela de comando. A figura do slide seguinte
ilustra como isto deve ser realizado.
Procure implementar este aplicativo de modo que sua interao
com o usurio se estabelea exatamente como voc pode
observar nesta figura.
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Exerccio 2
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Exerccio 2
O nmero informado deve ser maior que um e deve ser menor
ou igual a 2.147.483.647.
Se o dado informado no for um nmero, deve-se exibir a
seguinte mensagem de erro: Erro: dado invlido!.
Se o nmero no for maior que um, deve-se exibir a seguinte
mensagem de erro: Erro: o nmero deve ser maior que 1!.
Este aplicativo deve permitir que seja analisada qualquer
quantidade de nmeros.
Depois que o usurio indicar um nmero e for indicado se ele
primo, o aplicativo deve solicitar outro nmero para repetir a
operao.
Este procedimento deve se repetir indefinidamente e o aplicativo
s deve ser encerrado quando o usurio digitar SAIR.
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Exerccio 2
Procure implementar o algoritmo deste aplicativo de modo
que ele realize esta tarefa no menor tempo possvel.
Prope-se, como desafio, que voc tente expandir o limite
mximo que o usurio pode informar para
9.223.372.036.854.775.807.
Tente otimizar o algoritmo para que ele seja capaz de analisar
nmeros to grandes como este em um tempo plausvel.
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Exerccio 3
Crie um novo aplicativo, chamado Exercicio1003, que gere os
nmeros que compe a Seqncia de Fibonacci.
Esta seqncia uma funo recursiva que objetiva gerar um
conjunto de nmeros inteiros.
Os dois primeiros elementos desta seqncia so: {1,1}.
O terceiro nmero e todos os demais nmeros desta seqncia
so definidos pela soma dos dois nmeros anteriores.
O terceiro nmero, portanto, ser o dois (resultado da soma: 1 +
1), o quarto nmero ser o trs (resultado da soma: 2 + 1), o
quinto nmero ser o cinco (resultado da soma: 3 + 2) e assim
sucessivamente.
A lista dos dez primeiros nmeros desta seqncia so os
seguintes: f(M=10) = {1,1,2,3,5,8,13,21,34,55}
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Exerccio 3
Este aplicativo deve realizar toda interao com o usurio
atravs da janela de comando.
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Exerccio 3
O aplicativo dever solicitar ao usurio o a quantidade de
nmeros que devero ser gerados.
O nmero informado deve ser maior ou igual a trs.
O nmero deve ser menor ou igual a 92.
Armazene a quantidade informada em uma varivel do tipo byte.
Se o dado informado no for um nmero ou se for um nmero
superior capacidade do tipo byte, o aplicativo deve produzir a
seguinte mensagem de erro: Erro: dado invlido!.
Se o nmero for menor que trs ou maior que 92, o aplicativo
deve produzir a seguinte mensagem de erro: Erro: a quantidade
deve estar entre 3 e 92!.
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Exerccio 4
Crie um novo aplicativo, chamado Exercicio1004, que solicite
um nmero inteiro e indique se ele um nmero perfeito.
Um nmero perfeito um nmero inteiro para o qual a soma de
todos os seus divisores positivos menores que ele igual ao
prprio nmero.
O nmero seis um exemplo de nmero perfeito porque a soma
de seus divisores igual a ele prprio: 1 + 2 + 3 = 6.
Este aplicativo deve realizar toda interao com o usurio
atravs da janela de comando. A do slide seguinte ilustra
como isto deve ser realizado.
Procure implementar este aplicativo de modo que sua interao
com o usurio se estabelea exatamente como voc pode
observar nesta figura.
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Exerccio 4
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Exerccio 4
O nmero informado deve ser maior que zero e deve ser
menor ou igual a 32.767.
Se o dado informado no for um nmero ou se for um nmero
superior a 32767, o aplicativo deve produzir a seguinte
mensagem de erro: Erro: dado invlido!.
Se o nmero no for maior que zero, o aplicativo deve produzir a
seguinte mensagem de erro: Erro: o nmero deve ser maior que
zero!.
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Exerccio 5
Crie um novo aplicativo, chamado Exercicio1005, que
permita o registro de dados coletados atravs de pesquisa de
campo junto a uma amostra de at 100 pessoas.
Os dados coletados junto a cada pessoa so apenas trs: seu
nome, sua idade e seu estado civil.
Este aplicativo deve realizar toda interao com o usurio
atravs de dilogos grficos.
A Figura do slide seguinte ilustra como isto deve ser realizado.
Procure implementar este aplicativo de modo que sua interao
com o usurio se estabelea exatamente como voc pode
observar nesta figura.
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Exerccio 5
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Exerccio 5
Armazene os nomes dos entrevistados em um vetor de string
Utilize uma matriz do tipo byte para armazenar as idades e os
estados civis.
Armazene o estado civil como um byte que represente o cdigo
de um dos seguintes caracteres: S, C, V, D, O.
Eles representaro, respectivamente, os seguintes estados civis:
solteiro(a), casado(a), vivo(a), divorciado(a) e outros.
Quando o usurio cancelar um dos dilogos de entrada, o
aplicativo deve considerar que os dados de todos os
entrevistados j foram registrados.
Nesse caso, realizar os clculos estatsticos sobre estes dados e
exibir o relatrio final atravs de um dilogo grfico de sada.
No relatrio, devem constar as seguintes informaes:
Os dados de todas as pessoas entrevistadas.
A mdia de idade dos entrevistados.
O percentual de pessoas que se enquadra em cada estado civil.
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Exerccio 5
Se um dado informado no for vlido, o aplicativo deve emitir
uma mensagem de erro e solicit-lo novamente.
A validade dos dados ser quebrada nas situaes descritas
abaixo e as mensagens de erro que devem ser exibidas so
aquelas indicadas:
Se o nome contm menos de 5 ou mais de 50 caracteres, exiba a
mensagem de erro: O nome deve conter de 5 a 50 caracteres!.
Se o nome contiver dgitos numricos, exiba a mensagem de
erro: O nome no deve conter nmeros!.
Se a idade no for um nmero inteiro ou se for um nmero inteiro
superior a 127, exiba a mensagem de erro: Dado invlido!.
Se a idade for menor que zero, exiba a mensagem de erro: No
existe idade negativa!.
Se o estado civil informado no for um nico caractere, exiba a
mensagem de erro: Informe um caractere!.
Se o estado civil informado no for um dos caracteres previstos
(S, C, V, D e O), exiba a mensagem de erro: Opo invlida!.
Rui Rossi dos Santos Programao de Computadores em Java Editora NovaTerra
Contato
Com o autor:
Rui Rossi dos Santos
E-mail: livros@ruirossi.pro.br
Web Site: http://www.ruirossi.pro.br
Com a editora:
Editora NovaTerra
Telefone: (21) 2218-5314
Web Site: http://www.editoranovaterra.com.br