
Excepciones propias para la clase Circulo
Publicado por GABRIELA (1 intervención) el 12/11/2022 00:30:00
Estoy haciendo un ejercicio muy simple con la clase Circulo y pide lo siguiente:
Si se instancia la clase con radio <= 0 mostrar una excepción indicando un error amigable al
usuario e impidiendo la instanciación y permitir la multiplicacion por numeros distintos de 0 a la clase Circulo.
Nunca maneje excepciones en objetos entiendo que tengo que crear una clase que herede de Exception, para este tipo de error que mas que nada es semantico.
CLARAMENTE NO FUNCIONA.
Por favor alguien que me explique como se pasan los parametros en la clase NoCero
Mi codigo:
from math import pi
class Circulo():
def __init__(self,radio,num):
self.radio=radio
self.num=num
def area(self):
return (pi * pow(self.radio,2))*self.num
def perimetro(self):
return (pi *(2*self.radio))*self.num
c=Circulo(1,5)
PROBANDO UN IF
"""
if c.radio > 0 and c.num > 0:
print(f"El area del circulo es:{c.area():.2f} cm\xb2.")
print(f"El perimetro del circulo es:{c.perimetro():.2f}")
else:
print("se produjo un error")"""
class NoCero(Exception):
def __init__(self, radio, num):
super().__init__("La instancia de circulo no puede ser 0".format(radio,num))
self.radio=radio
self.num=num
raise NoCero(0,0)
try:
raise NoCero(0,0)
except NoCero as e:
print("No se puede permitir ni area ni perimetro 0")
Gracias, desde ya!
Si se instancia la clase con radio <= 0 mostrar una excepción indicando un error amigable al
usuario e impidiendo la instanciación y permitir la multiplicacion por numeros distintos de 0 a la clase Circulo.
Nunca maneje excepciones en objetos entiendo que tengo que crear una clase que herede de Exception, para este tipo de error que mas que nada es semantico.
CLARAMENTE NO FUNCIONA.
Por favor alguien que me explique como se pasan los parametros en la clase NoCero
Mi codigo:
from math import pi
class Circulo():
def __init__(self,radio,num):
self.radio=radio
self.num=num
def area(self):
return (pi * pow(self.radio,2))*self.num
def perimetro(self):
return (pi *(2*self.radio))*self.num
c=Circulo(1,5)
PROBANDO UN IF
"""
if c.radio > 0 and c.num > 0:
print(f"El area del circulo es:{c.area():.2f} cm\xb2.")
print(f"El perimetro del circulo es:{c.perimetro():.2f}")
else:
print("se produjo un error")"""
class NoCero(Exception):
def __init__(self, radio, num):
super().__init__("La instancia de circulo no puede ser 0".format(radio,num))
self.radio=radio
self.num=num
raise NoCero(0,0)
try:
raise NoCero(0,0)
except NoCero as e:
print("No se puede permitir ni area ni perimetro 0")
Gracias, desde ya!
Valora esta pregunta


0