(continued from previous pagetotal ring_cost('price csv'function call print("total price % totalprint value standard boilerplate main is the starting function if __name__ ='__main__'main(now run the code again and it will display the location of the errorfrom price import ring_cost ring_cost('price_missing csv'invalid datarow is skipped row reason could not convert string to float catch all error (bad practicein previous sectionswe catch the specific error 'valueerrorwe can catch all types of errors as well using 'exceptionkeywordbut this may result in misleading messagesas shown in this section first replace the 'valueerrorwith 'exceptionas belowprice py import csv def ring_cost(filename)''calculate the total cost ''total_price for all items in the list with open(filename' 'as fopen file in read mode rows csv reader(fheader next(rowsskip line header for row_numrow in enumerate(rowsstart= )start from not tryrow[ float(row[ ]price row[ int(row[ ]quantity except exception as errprocess valueerror only print("invalid datarow is skipped"print('row{}reason {}format(row_numerr)continue total_price +row[ row[ print("total price % ftotal_pricereturn total_price return total_price def main()total ring_cost('price csv'function call print("total price % totalprint value standard boilerplate main is the starting function if __name__ ='__main__'main(now run the code and it will work fine as shown below catch all error (bad practice