DEV Community

M__
M__

Posted on

DAY 17: MORE EXCEPTIONS

Yesterday’s challenge was about exceptions and today was a continuation on that topic but on a different aspect; raising an Exception.

Raising an exception is when one forces an exception to occur, it’s identified by the keyword raise followed by an exception instance or exception class then add a message to be displayed when the exception occurs. E.g. raise Exception(‘my message here’)

The Task:
Write a Calculator class with a single method: int power(int,int). The power method takes two integers, n and p, as parameters and returns the integer result of n^p. If either n or p is negative, then the method must throw an exception with the message: n and p should be non-negative.

class Calculator:
    def power(self,n,p):
        #check if either n or p is negative
        if n < 0 or p < 0:
            #raising the exception if either of the values is negative
            raise Exception('n and p should be non-negative')
        else:
            # returning the value of n to the power of p
            return n ** p


cl1 = Calculator()
T = int(input()) #number of test cases to be input
#looping though every test case
for i in range(T):
    #create two variables as the input is space-separated
    n, p = map(int, input().split())
    try:
        ans = cl1.power(n,p)
        print(ans)
    except Exception as e:
        print(e)


'''
Sample Input

4
3 5
2 4
-1 -2
-1 3
Sample Output

243
16
n and p should be non-negative
n and p should be non-negative
'''
Enter fullscreen mode Exit fullscreen mode

Top comments (0)