Quiz
Programação Defensiva
Create a free account to finish this quiz
Save your progress and see your final score.
Already have an account? Sign in
Questions in this quiz (10)
1Qual dos fatores externos esta ligado a Programação Defensiva?
- ACorretude
- BRobustez
- CVerificabilidade
- DSegurança (Integridade)
2Quais são os princípios de McConnel na Programação Defensiva?
- AO usuário deverá ser treinado para entrar com dados certos no sistema.
- BO programa devera tratar todos os dados de entradas, de forma que, caso algo esteja errado, ele possa através de probabilidades, descobrir o dado que o usuário estava querendo digitar.
- CEntra dados incorretos (lixo), nada sai. OU Nenhum lixo pode entrar.
3O que é tratamento de entradas inválidas na Programação Defensiva?
- ATratamento de entradas inválidas é criar uma barricada, ou seja, uma área segura do sistema com classes de validação, no qual será validada toda a informação, antes que a mesma entre para os módulos internos do sistema.
- BVerificar todo o tipo de entrada de fontes externas, seja de arquivo ou do próprio usuário e também do próprio sistema como parâmetros e chamadas de método. Caso detecte algum problema nos dados, fazer um tratamento adequado desses dados, de modo que o erro não interfira no funcionamento do sistema como um todo.
- CParar o sistema e levantar um erro (exceção) com informações da linha do código onde ocorreu o erro.
- DEnviar erro fatal e fechar o sistema sempre que um dado invalido entrar no sistema.
4Das alternativas abaixo, quais delas não é uma técnica de tratamento para entradas inválidas?
- ARetornar um valor neutro (padrão) que não cause erros.
- BSubstituir pelo próximo dado válido. (ex.: tocador de mp3 ou vídeo)
- CValor válido mais próximo. (ex.: Acertar entrada de hora do tipo: 22:80:05)
- DRetornar a mesma resposta anterior. (ex. Digitar canal inexistente, retornar ao canal estável.)
- EAvaliar expressão, caso seja falsa, emitir umas mensagem de erro inesperado no código.
5Marque a alternativa que exemplifique da melhor forma a Robustez x Corretude.
- ATodo programa deve ser robusto a qualquer custo. Ou seja, funcionar de qualquer maneira em condições anormais.
- BEm um programa do tipo de editor de texto, não se deve priorizar a robustez, uma vez que o programa não é tão crítico a falhas. Já em um sistema do tipo de controladores de voo a robustez deve ser importante.
- CDepende do programa, nem sempre a robustez será importante, e nesses casos a corretude deve ser priorizada, como nos sistemas de Raio X. Porem há casos que a robustez deve ser priorizada, como em sistemas de stream de vídeo ou áudio, como também em sistema do tipo editores de texto.
- DNenhuma das alternativas acima.
6Marque as respostas corretas em relação as barricadas.
- AÉ uma técnica de tratamento de entradas inválidas.
- BÉ uma área delimitada de segurança, no qual os dados são verificados e desinfectados ou bloqueados (quando não for possível a desinfecção), antes de entrar para as classes internas do sistema.
- CÉ uma técnica da programação defensiva que tem como estratégia o confinamento de dados.
- DAs rotinas fora das barricadas devem usar tratamento de erros.
- EAs classes de validação na barricada, levantam uma exceção quando um dado incorreta tentar passar.
- FNão se pode garantir a desinfecção total de dados em uma barricada.
7A forma geral do código de exceção é:
try
{
}catch(Exceção)
{
}finally
{
}- ATrue
- BFalse
8Marque as alternativas que mostra as recomendações de McConnell em relação aos tratamentos de exceções.
- AUse e abuse das exceções no seu projeto, além de torna o sistema mais robusto , ele facilita a compreensão do código.
- BEvite lançar exceções em construtores e destrutores.
- CCrie mensagens claras de exceção, que informa a causa do problema.
- DPadronize exceções com tipos, classes de controle e etc.
- EEvite exceções em casos excepcionais.
- FUse o nível correto de abstração. Evite passar exceções de baixo nível em classes de alto nível.
9O que este código faz?
static public double dividir(double y, double x)
{
if (x == 0)
throw new System.DivideByZeroException();
return(y/x);
}- AUm método que recebe duas variáveis double y e x, e retorna o resultado da divisão.
- BUm método que verifica se x é 0, se for positivo lança uma exceção de divisão por zero.
- CUm método que recebe duas variáveis double y e x, verifica se x é igual a zero, se for positivo lança uma exceção de divisão por zero, caso contrario, retorna a Divisão de y por x.
10Marque a alternativa correta sobre asserções.
- ATrata um erro de entrada, tentando corrigir esse erro na barricada, para então seguir para as classes internas do sistema.
- BPermite ao programa realizar uma avaliação booleana , caso essa avaliação dê falso, gera um erro espalhafatoso no sistema em modo debug, interrompe a execução do mesmo e exibe uma mensagem de erro para o programador. Em algumas linguagens essa mensagem podem ser personalizadas.
- CÉ usado para erros esperados no sistema.
- DMuito usados em programa de que pequeno porte, avisa aos programadores de erros que não deveriam acontecer no sistema.
- EPermite ao programa realizar uma avaliação booleana , caso essa avaliação dê verdadeiro, gera um erro espalhafatoso no sistema em modo release, interrompe a execução do mesmo e exibe uma mensagem de erro para o programador. Em algumas linguagens essa mensagem podem ser personalizadas.
Information
- Description
- Programação Modular Quiz on Programação Defensiva, created by Lucas Correa on 10/03/2014.
- Author
- Lucas Correa
- Language
- Português
- Views
- 215
- Tags
- Rating
- No ratings yet Rate this quiz