Python-ի միջին մակարդակ

Բացառություններ raise անել

Ծրագրեր գրելիս մենք հաճախ բախվում ենք իրավիճակների, երբ ծրագրի կատարման բնականոն հոսքը պետք է փոխվի որոշ պայմանների պատճառով: Python-ը մեզ մեխանիզմներ է տրամադրում նման իրավիճակները բացառությունների միջոցով կարգավորելու համար: Բացառություններ են այն իրադարձությունները, որոնք կարող են փոփոխել ծրագրի միջոցով վերահսկողության հոսքը: Python-ում դուք կարող եք ձեռքով գործարկել բացառություն ձեր ծրագրի ցանկացած կետում՝ օգտագործելով raise դրույթը:
Ահա raise դրույթն օգտագործելու պարզ օրինակ.
x = -1
if x < 0:
    # raise an exception if x is negative
    raise Exception('x should not be negative')
Այս ծրագրում, եթե x-ի արժեքը 0-ից փոքր է, Exception տիպի բացառություն է raise անվում x should not be negative հաղորդագրությամբ։ Եթե դուք աշխատացնեիք այս ծրագիրը, այն կկանգնեցվեր raise հայտարարության մեջ և դուրս կտպեր բացառության հաղորդագրությունը, այսպես.
Exception: x should not be negative
Բացի Exception-ից, Python-ում կա մի քանի ներկառուցված բացառություններ, որոնք կարող եք օգտագործել՝ ավելի կոնկրետ տեսակի սխալներ raise անելու համար: Ահա թե ինչպես կարող եք raise անել ValueError.
def sqrt(n):
    if n < 0:
        # raise a ValueError if n is negative
        raise ValueError('Square root not defined for negative numbers')
    return n ** 0.5

print(sqrt(4))    # 2.0
print(sqrt(-1))   # ValueError: Square root not defined for negative numbers
Այս օրինակում sqrt(n) ֆունկցիան փորձում է հաշվարկել n թվի քառակուսի արմատը։ Այնուամենայնիվ, եթե n-ը բացասական է, այն raise է անում ValueError՝ հատուկ հաղորդագրությամբ:
Նկատի ունեցեք, որ երբ դուք raise եք անում բացառություն, ծրագրի աշխատանքը ընդհատվում է: Սա հաճախ ցանկալի վարք է, քանի որ թույլ է տալիս ազդանշան տալ, որ ինչ-որ անսպասելի բան է տեղի ունեցել, որը ծրագիրը չի կարող կարգավորել: Հատուկ բացառության տեսակը և հաղորդագրությունը լրացուցիչ տեղեկություններ են տալիս սխալի մասին:

Առաջադրանք: Ֆայլերի ընթերցող

Ծրագրային ապահովման խոշոր ընկերությունում գրացուցակում կան բազմաթիվ կոդային ֆայլեր: Ձեզանից պահանջվում է գրել Python ֆունկցիա, որը բացում է ֆայլը և վերադարձնում դրա բովանդակությունը: Բայց այն նաև պետք է կարողանա կարգավորել այն դեպքերը, երբ ֆայլ գոյություն չունի:
Ֆունկցիայի պարամետրը ֆայլի անունն է:
Ֆունկցիան պետք է կարդա և վերադարձնի ֆայլի բովանդակությունը: Այն դեպքում, երբ ֆայլը գոյություն չունի, այն պետք է raise անի FileNotFoundError:
Մուտք
Մուտք
existing_file.txt
Hello World
non_existing_file.txt
File does not exist
 

Constraints

Time limit: 0.2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue