Python fornece blocos específicos para lidar com exceções:

Sintaxe Básica:

try:
    # Código que pode causar uma exceção
    resultado = 10 / 0 # Isso causará um ZeroDivisionError
except ZeroDivisionError:
    # Código para lidar com ZeroDivisionError
    print("Erro: Divisão por zero não é permitida!")

Exemplo Completo com try, except, else, finally:

def dividir_numeros(a, b):
    try:
        # 1. Código que pode causar uma exceção (divisão)
        resultado = a / b
    except ZeroDivisionError:
        # 2. Captura e trata especificamente a divisão por zero
        print("Erro: Não é possível dividir por zero!")
        return None # Retorna um valor para indicar falha
    except TypeError:
        # 3. Captura e trata especificamente se os tipos não são numéricos
        print("Erro: Certifique-se de que ambos os valores sejam números.")
        return None
    except Exception as e: # Captura qualquer outra exceção genérica
        print(f"Ocorreu um erro inesperado: {e}")
        return None
    else:
        # 4. Este bloco só executa se NENHUMA exceção ocorrer no 'try'
        print("Divisão realizada com sucesso!")
        return resultado
    finally:
        # 5. Este bloco SEMPRE executa, com ou sem erro
        print("Fim da tentativa de divisão (bloco finally).")

print("--- Teste 1: Divisão por zero ---")
dividir_numeros(10, 0) # Saída: Erro: Não é possível dividir por zero! \\n Fim da tentativa...

print("\\n--- Teste 2: Tipos incorretos ---")
dividir_numeros(10, "2") # Saída: Erro: Certifique-se de que ambos os valores sejam números. \\n Fim da tentativa...

print("\\n--- Teste 3: Operação bem-sucedida ---")
res = dividir_numeros(10, 2)
if res is not None:
    print(f"Resultado: {res}") # Saída: Divisão realizada com sucesso! \\n Fim da tentativa... \\n Resultado: 5.0

print("\\n--- Teste 4: Outro erro genérico ---")
# Forçando um erro que não seja ZeroDivisionError nem TypeError
# Exemplo teórico: se 'a' fosse um objeto que não suporta divisão
# Neste caso, 'dividir_numeros(obj_complexo, 2)' poderia cair no 'except Exception as e'