در پایتون، دستورات try و استثنا برای رسیدگی به خطاهایی که در حین اجرای برنامه رخ می دهد استفاده می شود. بلوک try برای آزمایش یک بلوک کد برای خطاها استفاده می شود. اگر خطایی پیدا نشد، کد داخل بلوک try اجرا می شود. اگر خطایی رخ دهد، اجرای کد داخل بلوک try متوقف می شود و به جای آن کد داخل بلوک غیر اجرا می شود. بلوک استثنا برای رسیدگی به خطای رخ داده در بلوک try استفاده می شود. در اینجا مثالی از نحوه استفاده از دستورات try و غیر در پایتون آورده شده است:

try:
    # Some code that might raise an exception
except:
    # Code to handle the exception

برای بیشتر روشن شدن موضوع برنامه زیر را در نظر بگیرید:

a=int(input())
b=int(input())
result=a/b
print('the answer is : ' , result)

اگر کاربر مقدار صفر را به متغیر b بدهد با اجرای برنامه چون مقسوم علیه برابر صفر است خطای زیر را مشاهده خواهید کرد:

ZeroDivisionError: division by zero

با توجه به اینکه ما نمی دانیم کاربر ممکن است چنین اشتباهی مرتکب شود باید راهی پیدا کنیم که اجرای برنامه متوقف نشود، بلکه یک پیام مناسب به کاربر نمایش دهد. برنامه زیر چنین کاری انجام می دهد:

try:
    a=int(input())
    b=int(input())
    result=a/b
    print('the answer is : ' , result)
except:
    print('Division by zero!')

اما ممکن است خطاهای دیگری هم رخ دهد، مثلا کاربر یک کاراکتر غیرعددی وارد کند. در این صورت پیام بالا بی معنی خواهد بود. بنابراین می توانیم به پایتون بگوییم که برای دریافت هر خطایی چه پیامی نمایش دهد. برنامه زیر را ببینید:

try:
    a=int(input())
    b=int(input())
    result=a/b
    print('the answer is : ' , result)
except ZeroDivisionError:
    print('Division by zero!')
except ValueError:
    print('Please enter a number.')

در این برنامه مشخص کرده ایم که اگر خطای ZeroDivisionError رخ دهد یک پیغام و اگر خطای ValueError رخ دهد یک پیغام دیگر به کاربر نمایش دهد.

و در پایان اگر قصد داشته باشیم فارغ از اینکه خطایی رخ بدهد یا ندهد یک بلوک از کد را اجرا کنیم کافی است که از finally استفاده کنیم.

در برنامه زیر نحوه استفاده از آن را می توانید مشاهده کنید:

try:
    a=int(input())
    b=int(input())
    result=a/b
    print('the answer is : ' , result)
except ZeroDivisionError:
    print('Division by zero!')
except ValueError:
    print('Please enter a number.')
finally:
    print('Thank you for using this program.')