feature of mu that executes program one instruction at timegiving you chance to inspect the values in variables while your code runsand track how the values change over the course of your program this is much slower than running the program at full speedbut it is helpful to see the actual values in program while it runsrather than deducing what the values might be from the source code raising exceptions python raises an exception whenever it tries to execute invalid code in you read about how to handle python' exceptions with try and except statements so that your program can recover from exceptions that you anticipated but you can also raise your own exceptions in your code raising an exception is way of saying"stop running the code in this function and move the program execution to the except statement exceptions are raised with raise statement in codea raise statement consists of the followingthe raise keyword call to the exception(function string with helpful error message passed to the exception(function for exampleenter the following into the interactive shellraise exception('this is the error message 'traceback (most recent call last)file ""line in raise exception('this is the error message 'exceptionthis is the error message if there are no try and except statements covering the raise statement that raised the exceptionthe program simply crashes and displays the exception' error message often it' the code that calls the functionrather than the function itselfthat knows how to handle an exception that means you will commonly see raise statement inside function and the try and except statements in the code calling the function for exampleopen new file editor tabenter the following codeand save the program as boxprint pydef boxprint(symbolwidthheight)if len(symbol! raise exception('symbol must be single character string 'if width < raise exception('width must be greater than '