Quick actions

cmd+k|ctrl+k

Navigation

Languages

5_14_Excepciones_desafio_4

Snippet info

Language

Python

Visibility

public

Author

jorgetoto2006new

Created

2024-11-04T01:54:30.389248Z

Updated

2024-11-04T01:54:30.389248Z

import math

# Definir una excepción personalizada
class NegativeNumberError(Exception):
    """Excepción que se lanza cuando se ingresa un número negativo en una operación no permitida."""
    def __init__(self, numero, mensaje="No se puede calcular la raíz cuadrada de un número negativo."):
        self.numero = numero
        self.mensaje = mensaje
        super().__init__(self.mensaje)

def calcular_raiz_cuadrada(numero):
    """
    Calcula la raíz cuadrada de un número.
    Lanza una excepción personalizada si el número es negativo.
    """
    try:
        # Verificar si el número es negativo
        if numero < 0:
            # Lanza la excepción personalizada con un mensaje detallado
            raise NegativeNumberError(numero)
        
        # Calcular la raíz cuadrada
        resultado = math.sqrt(numero)
        print(f"La raíz cuadrada de {numero} es: {resultado}")
        return resultado
    
    except NegativeNumberError as ne:
        # Maneja la excepción personalizada e imprime un mensaje detallado
        print(f"Error: {ne}")
    except TypeError:
        # Captura el error si el tipo de dato no es numérico
        print("Error: El valor ingresado debe ser un número.")
    except Exception as e:
        # Captura cualquier otro error inesperado
        print(f"Ha ocurrido un error inesperado: {e}")

# Ejemplo de uso
try:
    entrada = float(input("Ingrese un número para calcular su raíz cuadrada: "))  # Solicita un número al usuario
    calcular_raiz_cuadrada(entrada)
except ValueError:
    # Captura si el usuario ingresa algo que no se puede convertir a un número
    print("Error: Debe ingresar un número válido.")
INFO