Buscar

Tratamento de Exceção e Eventos em Java e C++

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 3 páginas

Prévia do material em texto

5185/31 e 6888/1– Paradigma de Programação Imperativa 
e Orientada a Objetos 
Profa. Valéria 
5ª Lista de Exercícios (2ª Parte) 
Cap. 14 (Sebesta)/Cap.8 (Scott): Tratamento de exceção e eventos 
1. Tanto em Java quanto em C++, qual a função do comando throw? E qual a função do comando 
try-catch? 
2. Tanto em Java quanto em C++, quando nenhuma exceção é lançada num bloco try, onde o 
controle prossegue quando o bloco try completa a execução? 
3. Tanto em Java quanto em C++, o que acontece se nenhum handler catch corresponder ao tipo de 
uma exceção lançada? 
4. Qual a razão da linguagem Java incluir um bloco finally no comando try-catch? 
5. Tanto em Java quanto em C++, o que acontece com as variáveis locais a um bloco try quando uma 
exceção é lançada nesse bloco? 
6. Qual a diferença entre exceções verificadas e não verificadas em Java? 
7. Em Java, o que acontece se vários blocos catch correspondem ao tipo do objeto lançado? 
8. Qual a função da cláusula throws usada no cabeçalho de métodos Java? 
9. Em Java, o que acontece quando uma instrução throw refExceção é colocada dentro de um 
bloco catch? 
10. Em Java, qual o resultado de se ter um catch(Exception exception) como parte de um try? 
11. Modifique o código C++ abaixo (versão em C++ da Figura 8.4 do livro do Scott) para lançar uma 
exceção se for feita uma tentativa de enfileirar (enqueue) um item em uma fila cheia (situação de 
overflow) ou desenfileirar (dequeue) um item de uma fila vazia (situação de underflow). 
template <class item, int max_items = 100> 
class queue { 
 item items[max_items]; 
 int next_free; 
 int next_full; 
public: 
 queue(){ 
 next_free = next_full = 0; 
} 
void enqueue (item it){ 
 items[next_free] = it; 
 next_free = (next_free + 1)% max_items; 
} 
item dequeue(){ 
 item rtn = items[next_full]; 
 next_full = (next_full + 1) % max_items; 
 return rtn; 
} 
}; 
 
 
12. O código C++ abaixo está correto. Explique seu funcionamento, explicitando o funcionamento do 
mecanismo de tratamento de exceções. 
int fun1(int x) throw (int, float) { 
 if (x == 0) { 
 throw x; 
 } 
 else { 
 float f = x*1.5; 
 throw f; 
 } 
} 
void fun2() throw (float) { 
 int i; 
 while(true) { 
 try { 
 cout << "Digite um valor inteiro: "; 
 cin >> i; 
 fun1(i); 
 } catch (int) { 
 cout << "Tente novamente." << endl; 
 } 
 } 
} 
int main(){ 
 try { 
 fun2(); 
 } catch (float f){ 
 cout << "Valor * 1.5 = " << f << endl; 
 } 
} 
13. Considere o seguinte esqueleto de programa em C++: 
class Big { 
int i; 
float f; 
void fun1() throw (int) { 
 ... 
 try { 
 ... 
 throw i; 
 ... 
 throw f; 
 ... 
 } catch (float) {...} 
 ... 
} 
 } 
class Small { 
int j; 
float g; 
void fun2() throw (float) { 
... 
try { 
... 
try { 
Big.fun1(); 
... 
throw j; 
... 
throw g; 
... 
} catch (int) {...} 
... 
} catch (float) {...} 
} 
} 
Em cada uma das quatro instruções throw, onde cada exceção é capturada/tratada? 
14. De que maneira o tratamento de exceções e o tratamento de eventos são relacionados? 
15. O que é um manipulador de evento (handler)? 
16. Nos slides dados em aula é mostrado um modelo geral de tratamento de eventos (Visão geral). 
Nesse modelo, o que faz parte da implementação da LP e o que deve ser programado pelo usuário? 
17. Em Java, o que é um listener (“ouvinte” de evento)? 
18. Em Java, o significa registrar um listener? 
19. Em Java, as classes que implementam listeners costumam ser internas. Por quê? 
20. Escreva um aplicativo Java com interface gráfica para converter uma temperatura em Fahrenheit 
para Celsius. A temperatura em Fahrenheit deve ser inserida pelo teclado em um JTextField. Um 
JLabel deve ser usado para exibir a temperatura convertida. Utilize a seguinte fórmula para 
conversão: 
Celsius = 5/9 * (Fahrenheit – 32)

Continue navegando