{"id":52,"date":"2025-09-24T22:11:58","date_gmt":"2025-09-24T20:11:58","guid":{"rendered":"http:\/\/python-ai.pl\/?p=52"},"modified":"2025-09-24T22:11:58","modified_gmt":"2025-09-24T20:11:58","slug":"obsluga-wyjatkow","status":"publish","type":"post","link":"https:\/\/python-ai.pl\/?p=52","title":{"rendered":"Obs\u0142uga wyj\u0105tk\u00f3w"},"content":{"rendered":"\n<div class=\"wp-block-group has-pale-ocean-gradient-background has-background\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<h4 class=\"wp-block-heading\">Obs\u0142uga wyj\u0105tk\u00f3w w Pythonie<\/h4>\n\n\n\n<p>Wyj\u0105tki to b\u0142\u0119dy, kt\u00f3re mog\u0105 wyst\u0105pi\u0107 podczas wykonywania programu. Python pozwala na ich obs\u0142ug\u0119, aby program nie przerywa\u0142 dzia\u0142ania.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Podstawowa obs\u0142uga wyj\u0105tk\u00f3w:<\/h4>\n\n\n\n<p>U\u017cywamy blok\u00f3w <code>try<\/code> i <code>except<\/code>:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" data-code=\"try:\n    number = 0  # Symulujemy problematyczn\u0105 warto\u015b\u0107\n    result = 10 \/ number\n    print(f&quot;Wynik: {result}&quot;)\nexcept:\n    print(&quot;Wyst\u0105pi\u0142 b\u0142\u0105d!&quot;)\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #C586C0\">try<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    number = <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #6A9955\"># Symulujemy problematyczn\u0105 warto\u015b\u0107<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    result = <\/span><span style=\"color: #B5CEA8\">10<\/span><span style=\"color: #D4D4D4\"> \/ number<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">print<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">f<\/span><span style=\"color: #CE9178\">&quot;Wynik: <\/span><span style=\"color: #569CD6\">{<\/span><span style=\"color: #D4D4D4\">result<\/span><span style=\"color: #569CD6\">}<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">except<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">print<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;Wyst\u0105pi\u0142 b\u0142\u0105d!&quot;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Obs\u0142uga konkretnych wyj\u0105tk\u00f3w:<\/h4>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" data-code=\"try:\n    number = 0  # Dzielenie przez zero\n    result = 10 \/ number\n    print(f&quot;Wynik: {result}&quot;)\nexcept ValueError:\n    print(&quot;To nie jest liczba!&quot;)\nexcept ZeroDivisionError:\n    print(&quot;Nie mo\u017cna dzieli\u0107 przez zero!&quot;)\nexcept Exception as e:\n    print(f&quot;Wyst\u0105pi\u0142 nieoczekiwany b\u0142\u0105d: {e}&quot;)\n\n# Przyk\u0142ad z ValueError\ntry:\n    number = int(&quot;abc&quot;)  # Pr\u00f3ba konwersji tekstu na liczb\u0119\n    print(number)\nexcept ValueError:\n    print(&quot;To nie jest liczba!&quot;)\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #C586C0\">try<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    number = <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #6A9955\"># Dzielenie przez zero<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    result = <\/span><span style=\"color: #B5CEA8\">10<\/span><span style=\"color: #D4D4D4\"> \/ number<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">print<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">f<\/span><span style=\"color: #CE9178\">&quot;Wynik: <\/span><span style=\"color: #569CD6\">{<\/span><span style=\"color: #D4D4D4\">result<\/span><span style=\"color: #569CD6\">}<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">except<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">ValueError<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">print<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;To nie jest liczba!&quot;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">except<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">ZeroDivisionError<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">print<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;Nie mo\u017cna dzieli\u0107 przez zero!&quot;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">except<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">Exception<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #C586C0\">as<\/span><span style=\"color: #D4D4D4\"> e:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">print<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">f<\/span><span style=\"color: #CE9178\">&quot;Wyst\u0105pi\u0142 nieoczekiwany b\u0142\u0105d: <\/span><span style=\"color: #569CD6\">{<\/span><span style=\"color: #D4D4D4\">e<\/span><span style=\"color: #569CD6\">}<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\"># Przyk\u0142ad z ValueError<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">try<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    number = <\/span><span style=\"color: #4EC9B0\">int<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;abc&quot;<\/span><span style=\"color: #D4D4D4\">)  <\/span><span style=\"color: #6A9955\"># Pr\u00f3ba konwersji tekstu na liczb\u0119<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">print<\/span><span style=\"color: #D4D4D4\">(number)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">except<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">ValueError<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">print<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;To nie jest liczba!&quot;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Najcz\u0119stsze typy wyj\u0105tk\u00f3w:<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>ValueError<\/code> &#8211; nieprawid\u0142owa warto\u015b\u0107<\/li>\n\n\n\n<li><code>TypeError<\/code> &#8211; nieprawid\u0142owy typ danych<\/li>\n\n\n\n<li><code>ZeroDivisionError<\/code> &#8211; dzielenie przez zero<\/li>\n\n\n\n<li><code>IndexError<\/code> &#8211; indeks poza zakresem<\/li>\n\n\n\n<li><code>KeyError<\/code> &#8211; klucz nie istnieje w s\u0142owniku<\/li>\n\n\n\n<li><code>FileNotFoundError<\/code> &#8211; plik nie istnieje<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Blok else i finally:<\/h4>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" data-code=\"try:\n    number = 5  # Prawid\u0142owa warto\u015b\u0107\n    result = 10 \/ number\nexcept ValueError:\n    print(&quot;To nie jest liczba!&quot;)\nexcept ZeroDivisionError:\n    print(&quot;Nie mo\u017cna dzieli\u0107 przez zero!&quot;)\nelse:\n    # Wykonuje si\u0119 tylko je\u015bli nie by\u0142o wyj\u0105tku\n    print(f&quot;Wynik: {result}&quot;)\nfinally:\n    # Wykonuje si\u0119 zawsze, niezale\u017cnie od wyj\u0105tku\n    print(&quot;Koniec programu&quot;)\n\n# Przyk\u0142ad z wyj\u0105tkiem\ntry:\n    number = 0  # B\u0119dzie b\u0142\u0105d\n    result = 10 \/ number\nexcept ZeroDivisionError:\n    print(&quot;Nie mo\u017cna dzieli\u0107 przez zero!&quot;)\nelse:\n    print(f&quot;Wynik: {result}&quot;)\nfinally:\n    print(&quot;Koniec programu&quot;)\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #C586C0\">try<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    number = <\/span><span style=\"color: #B5CEA8\">5<\/span><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #6A9955\"># Prawid\u0142owa warto\u015b\u0107<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    result = <\/span><span style=\"color: #B5CEA8\">10<\/span><span style=\"color: #D4D4D4\"> \/ number<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">except<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">ValueError<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">print<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;To nie jest liczba!&quot;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">except<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">ZeroDivisionError<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">print<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;Nie mo\u017cna dzieli\u0107 przez zero!&quot;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">else<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #6A9955\"># Wykonuje si\u0119 tylko je\u015bli nie by\u0142o wyj\u0105tku<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">print<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">f<\/span><span style=\"color: #CE9178\">&quot;Wynik: <\/span><span style=\"color: #569CD6\">{<\/span><span style=\"color: #D4D4D4\">result<\/span><span style=\"color: #569CD6\">}<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">finally<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #6A9955\"># Wykonuje si\u0119 zawsze, niezale\u017cnie od wyj\u0105tku<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">print<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;Koniec programu&quot;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\"># Przyk\u0142ad z wyj\u0105tkiem<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">try<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    number = <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #6A9955\"># B\u0119dzie b\u0142\u0105d<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    result = <\/span><span style=\"color: #B5CEA8\">10<\/span><span style=\"color: #D4D4D4\"> \/ number<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">except<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">ZeroDivisionError<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">print<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;Nie mo\u017cna dzieli\u0107 przez zero!&quot;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">else<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">print<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">f<\/span><span style=\"color: #CE9178\">&quot;Wynik: <\/span><span style=\"color: #569CD6\">{<\/span><span style=\"color: #D4D4D4\">result<\/span><span style=\"color: #569CD6\">}<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">finally<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">print<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;Koniec programu&quot;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Rzucanie wyj\u0105tk\u00f3w:<\/h4>\n\n\n\n<p>Mo\u017cesz samodzielnie rzuca\u0107 wyj\u0105tki u\u017cywaj\u0105c <code>raise<\/code>:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" data-code=\"def check_age(age):\n    if age < 0:\n        raise ValueError(&quot;Wiek nie mo\u017ce by\u0107 ujemny!&quot;)\n    elif age &gt; 150:\n        raise ValueError(&quot;Wiek jest nieprawdopodobny!&quot;)\n    else:\n        print(f&quot;Wiek: {age}&quot;)\n\ntry:\n    check_age(-5)\nexcept ValueError as e:\n    print(f&quot;B\u0142\u0105d: {e}&quot;)\n\ntry:\n    check_age(200)\nexcept ValueError as e:\n    print(f&quot;B\u0142\u0105d: {e}&quot;)\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #569CD6\">def<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">check_age<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">age<\/span><span style=\"color: #D4D4D4\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\"> age &lt; <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #C586C0\">raise<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">ValueError<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;Wiek nie mo\u017ce by\u0107 ujemny!&quot;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">elif<\/span><span style=\"color: #D4D4D4\"> age &gt; <\/span><span style=\"color: #B5CEA8\">150<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #C586C0\">raise<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">ValueError<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;Wiek jest nieprawdopodobny!&quot;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">else<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #DCDCAA\">print<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">f<\/span><span style=\"color: #CE9178\">&quot;Wiek: <\/span><span style=\"color: #569CD6\">{<\/span><span style=\"color: #D4D4D4\">age<\/span><span style=\"color: #569CD6\">}<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">try<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    check_age(-<\/span><span style=\"color: #B5CEA8\">5<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">except<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">ValueError<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #C586C0\">as<\/span><span style=\"color: #D4D4D4\"> e:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">print<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">f<\/span><span style=\"color: #CE9178\">&quot;B\u0142\u0105d: <\/span><span style=\"color: #569CD6\">{<\/span><span style=\"color: #D4D4D4\">e<\/span><span style=\"color: #569CD6\">}<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">try<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    check_age(<\/span><span style=\"color: #B5CEA8\">200<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">except<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">ValueError<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #C586C0\">as<\/span><span style=\"color: #D4D4D4\"> e:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">print<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">f<\/span><span style=\"color: #CE9178\">&quot;B\u0142\u0105d: <\/span><span style=\"color: #569CD6\">{<\/span><span style=\"color: #D4D4D4\">e<\/span><span style=\"color: #569CD6\">}<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">W\u0142asne wyj\u0105tki:<\/h4>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" data-code=\"class TooYoungError(Exception):\n    pass\n\ndef check_driving_age(age):\n    if age < 18:\n        raise TooYoungError(&quot;Musisz mie\u0107 18 lat, \u017ceby prowadzi\u0107 samoch\u00f3d!&quot;)\n    else:\n        print(&quot;Mo\u017cesz prowadzi\u0107 samoch\u00f3d!&quot;)\n\ntry:\n    check_driving_age(16)\nexcept TooYoungError as e:\n    print(f&quot;B\u0142\u0105d: {e}&quot;)\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #569CD6\">class<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">TooYoungError<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #4EC9B0\">Exception<\/span><span style=\"color: #D4D4D4\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">pass<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">def<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">check_driving_age<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">age<\/span><span style=\"color: #D4D4D4\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\"> age &lt; <\/span><span style=\"color: #B5CEA8\">18<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #C586C0\">raise<\/span><span style=\"color: #D4D4D4\"> TooYoungError(<\/span><span style=\"color: #CE9178\">&quot;Musisz mie\u0107 18 lat, \u017ceby prowadzi\u0107 samoch\u00f3d!&quot;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">else<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #DCDCAA\">print<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;Mo\u017cesz prowadzi\u0107 samoch\u00f3d!&quot;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">try<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    check_driving_age(<\/span><span style=\"color: #B5CEA8\">16<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">except<\/span><span style=\"color: #D4D4D4\"> TooYoungError <\/span><span style=\"color: #C586C0\">as<\/span><span style=\"color: #D4D4D4\"> e:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">print<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">f<\/span><span style=\"color: #CE9178\">&quot;B\u0142\u0105d: <\/span><span style=\"color: #569CD6\">{<\/span><span style=\"color: #D4D4D4\">e<\/span><span style=\"color: #569CD6\">}<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Przyk\u0142ady praktyczne:<\/h4>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" data-code=\"# Obs\u0142uga dost\u0119pu do listy\nfruits = &#91;&quot;jab\u0142ko&quot;, &quot;banan&quot;, &quot;pomara\u0144cza&quot;&#93;\n\ntry:\n    print(fruits&#91;5&#93;)  # Indeks poza zakresem\nexcept IndexError:\n    print(&quot;Indeks poza zakresem listy!&quot;)\n\n# Obs\u0142uga dost\u0119pu do s\u0142ownika\nperson = {&quot;name&quot;: &quot;Jan&quot;, &quot;age&quot;: 30}\n\ntry:\n    print(person&#91;&quot;city&quot;&#93;)  # Klucz nie istnieje\nexcept KeyError:\n    print(&quot;Klucz nie istnieje w s\u0142owniku!&quot;)\n\n# Bezpieczniejszy spos\u00f3b\ncity = person.get(&quot;city&quot;, &quot;Nieznane&quot;)\nprint(f&quot;Miasto: {city}&quot;)\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955\"># Obs\u0142uga dost\u0119pu do listy<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">fruits = &#91;<\/span><span style=\"color: #CE9178\">&quot;jab\u0142ko&quot;<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #CE9178\">&quot;banan&quot;<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #CE9178\">&quot;pomara\u0144cza&quot;<\/span><span style=\"color: #D4D4D4\">&#93;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">try<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">print<\/span><span style=\"color: #D4D4D4\">(fruits&#91;<\/span><span style=\"color: #B5CEA8\">5<\/span><span style=\"color: #D4D4D4\">&#93;)  <\/span><span style=\"color: #6A9955\"># Indeks poza zakresem<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">except<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">IndexError<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">print<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;Indeks poza zakresem listy!&quot;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\"># Obs\u0142uga dost\u0119pu do s\u0142ownika<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">person = {<\/span><span style=\"color: #CE9178\">&quot;name&quot;<\/span><span style=\"color: #D4D4D4\">: <\/span><span style=\"color: #CE9178\">&quot;Jan&quot;<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #CE9178\">&quot;age&quot;<\/span><span style=\"color: #D4D4D4\">: <\/span><span style=\"color: #B5CEA8\">30<\/span><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">try<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">print<\/span><span style=\"color: #D4D4D4\">(person&#91;<\/span><span style=\"color: #CE9178\">&quot;city&quot;<\/span><span style=\"color: #D4D4D4\">&#93;)  <\/span><span style=\"color: #6A9955\"># Klucz nie istnieje<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">except<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">KeyError<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">print<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;Klucz nie istnieje w s\u0142owniku!&quot;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\"># Bezpieczniejszy spos\u00f3b<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">city = person.get(<\/span><span style=\"color: #CE9178\">&quot;city&quot;<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #CE9178\">&quot;Nieznane&quot;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">print<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">f<\/span><span style=\"color: #CE9178\">&quot;Miasto: <\/span><span style=\"color: #569CD6\">{<\/span><span style=\"color: #D4D4D4\">city<\/span><span style=\"color: #569CD6\">}<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Dobre praktyki:<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Zawsze obs\u0142uguj konkretne wyj\u0105tki, nie u\u017cywaj pustego <code>except<\/code><\/li>\n\n\n\n<li>U\u017cywaj <code>finally<\/code> do czyszczenia zasob\u00f3w<\/li>\n\n\n\n<li>Nie ukrywaj b\u0142\u0119d\u00f3w &#8211; loguj je lub wy\u015bwietlaj u\u017cytkownikowi<\/li>\n\n\n\n<li>U\u017cywaj <code>raise<\/code> do przekazywania wyj\u0105tk\u00f3w dalej<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">\u0106wiczenie:<\/h4>\n\n\n\n<p>Napisz program z obs\u0142ug\u0105 r\u00f3\u017cnych typ\u00f3w wyj\u0105tk\u00f3w.<\/p>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Obs\u0142uga wyj\u0105tk\u00f3w w Pythonie Wyj\u0105tki to b\u0142\u0119dy, kt\u00f3re mog\u0105 wyst\u0105pi\u0107 podczas wykonywania programu. Python pozwala na ich obs\u0142ug\u0119, aby program nie przerywa\u0142 dzia\u0142ania. Podstawowa obs\u0142uga wyj\u0105tk\u00f3w: U\u017cywamy blok\u00f3w try i except: Obs\u0142uga konkretnych wyj\u0105tk\u00f3w: Najcz\u0119stsze typy wyj\u0105tk\u00f3w: Blok else i finally: Rzucanie wyj\u0105tk\u00f3w: Mo\u017cesz samodzielnie rzuca\u0107 wyj\u0105tki u\u017cywaj\u0105c raise: W\u0142asne wyj\u0105tki: Przyk\u0142ady praktyczne: Dobre praktyki: [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4,3],"tags":[6,5,22],"class_list":["post-52","post","type-post","status-publish","format-standard","hentry","category-kurs","category-python","tag-kurs","tag-python","tag-wyjatki"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/python-ai.pl\/index.php?rest_route=\/wp\/v2\/posts\/52","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/python-ai.pl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/python-ai.pl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/python-ai.pl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/python-ai.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=52"}],"version-history":[{"count":1,"href":"https:\/\/python-ai.pl\/index.php?rest_route=\/wp\/v2\/posts\/52\/revisions"}],"predecessor-version":[{"id":53,"href":"https:\/\/python-ai.pl\/index.php?rest_route=\/wp\/v2\/posts\/52\/revisions\/53"}],"wp:attachment":[{"href":"https:\/\/python-ai.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=52"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/python-ai.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=52"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/python-ai.pl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=52"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}