quinta-feira, 8 de janeiro de 2015

Teste Final - Pergunta 1a

Pedia-se para dizer o que eram e para que serviam as excepções e as asserções. Por outro lado, também se pretendia saber as suas semelhanças e as suas diferenças, e ainda a apresentação de um exemplo concreto de cada.

De um modo geral excepções e asserções são formas de controlar possíveis erros ou verificar condições num programa.

As excepções são instruções de controlo, enquanto as asserções são instruções simples. As excepções permitem que o programa continue a ser executado, mesmo na presença de um erro, pois prevê acções de remediarão. No caso das asserções isso não acontece, pois o programa termina no caso da asserção não se verificar. Assim estas últimas são sobretudo usadas para depurar os programas.

As excepções são activadas (raise) quando durante a execução se verifica um erro. Os erros podem ser de diversos tipos, podendo as excepções ser genéricas ou dirigidas a um ou mais tipos de erro. Um exemplo simples e clássico é prevenir erros nas operações:
def divisao_protegida(x,y):
 try:
  res = x/y
  return res
 except ZeroDivisionError:
  print(‘ERRO: divisão por zero’)
No caso das asserções elas permitem verificar condições para que um programa possa correr. Um exemplo, também clássico, permite evitar um ciclo infinito:
def factorial(x):
 assert (x >=0), ‘ERRO: número negativo’
 res = 1
 while x:
  res *= x
  x -= 1
 return res

Sem comentários:

Enviar um comentário