Python-3.4.3/C4/Handling-Errors-and-Exceptions/English-timed
From Script | Spoken-Tutorial
Time | Narration |
00:01 | Welcome to the spoken tutorial on Handling errors and exceptions. |
00:07 | In this tutorial, you will learn to, Understand errors and exceptions |
00:14 | Handle errors and exceptions |
00:17 | To record this tutorial, I am using Ubuntu Linux 16.04 operating system |
00:25 | Python 3.4.3 and IPython 5.1.0 |
00:32 | To practise this tutorial, you should know how to use functions and carry-out testing and debugging. |
00:43 | If not, see the relevant Python tutorials on this website. |
00:48 | In Python there are two kinds of errors: syntax errors and exceptions |
00:57 | Syntax errors are caused by incorrect usages and these are detected by parser. |
01:04 | For example: if True print inside brackets inside double quotes done |
01:11 | It will give Syntax Error since colon is missing after True. |
01:17 | Exception is an error that occurs during execution of a program. |
01:23 | Python generates an exception that can be handled, which avoids the program to crash. |
01:30 | For example: 1/0
It will give ZeroDivisionError exception. |
01:37 | Let us see these examples in action. Open the terminal. |
01:43 | Type ipython3 and press Enter. |
01:48 | From here onwards remember to press the Enter key after typing every command on the terminal. |
01:55 | Now type if True print inside brackets inside double quotes done. |
02:03 | The output shows SyntaxError. |
02:06 | It displays an ‘arrow’ pointing at the earliest point in the line where the error was detected. |
02:13 | In our case, the error is caused by missing colon after True in If clause |
02:20 | Now type, 1 / 0
Python throws an exception called ZeroDivisionError. |
02:29 | Even though the expression is syntactically correct, we cannot divide a number by zero. |
02:36 | Exception is a special kind of failure reported by the programming language. |
02:42 | Let us see how can be deal with the Exceptions that occured in Programs |
02:48 | Type a = input inside brackets inside double quotes Enter an integer |
02:57 | I will enter ac as input. Now type, num is equal to int inside brackets a |
03:07 | When you run this code, it throws a 'ValueError' Exception. This is because, we are trying to convert the string to integer. |
03:17 | So now we can 'catch exceptions and write code to handle it. For this we have try and except clause in Python. |
03:27 | Here is the syntax of try....except...else blocks. First, the statements between the try and except keywords is executed. |
03:38 | If the statements do not cause any exception, the except clause is skipped. |
03:44 | If the statements cause any exception, then except clause is executed if exception name matches. |
03:52 | And the execution continues after the try statement |
03:57 | The code in the else-block executes if the code in the try: block does not raise an exception. |
04:05 | Type as shown. Give ac as input. |
04:12 | Now we will type the try and except blocks. |
04:16 | Press Enter twice to get the output. |
04:20 | In the previous example, We encountered a problem because we tried to convert the string ‘ac’ to integer. |
04:28 | Here conversion of string value to an integer is given inside try block. |
04:34 | ValueError exception is raised and so the output is displayed as Wrong input. |
04:41 | In the previous example, we found out what caused the error and then resolved to get a solution for it. This whole process is called debugging. |
04:53 | Next we will see another case in try except statement with else clause. |
04:59 | Lets change our previous code slightly. Type as shown.
I will give input as 23. |
05:10 | Now type as shown. This try… except statement has an optional else clause. |
05:20 | It is useful if the try clause does not raise an exception. |
05:25 | Lets see another example for debugging. Create a file mymodule.py with the following code. |
05:34 | The variable ‘i’ is iterated from 0 to 9. |
05:39 | Let us run this code in Ipython.
Type, from mymodule import test test open and close brackets |
05:52 | Interpreter gives us ZeroDivisionError because there is a division by zero error. |
05:59 | To find the value which caused the error, type Percentage debug |
06:06 | The code which caused the error is shown by an arrow. |
06:11 | The prompt has changed to ipdb which is the ipython debugger mode. |
06:18 | Using this debugger here, you can access variables in the previous code block. |
06:24 | We can check values of variables to inspect what went wrong. |
06:29 | For example, on typing ‘i’, we get 5 as output. |
06:36 | This means that the error was caused when the value of i became 5. |
06:42 | To exit from the ipdb prompt, press q and press Enter. |
06:48 | This brings us to the end of this tutorial. Let us summarize. |
06:54 | In this tutorial, we have learnt about Errors and exceptions. |
07:00 | Handling exception using try and except. Using percentage debug for debugging in ipython. |
07:09 | Here is a self assessment question for you to solve
How do you start the debugger on ipython? |
07:17 | And the answer, We start the debugger on ipython by saying, percentage debug |
07:25 | Please post your timed queries in this forum. |
07:29 | Please post your general queries on Python in this forum. |
07:34 | FOSSEE team coordinates the TBC project. |
07:38 | Spoken Tutorial Project is funded by NMEICT, MHRD, Govt. of India. For more details, visit this website. |
07:49 | This is Priya from IIT Bombay signing off. Thank you. |