IRONSOFTWAREHOME
AKTUALNOŚCI DLA PROGRAMISTÓW

Try/Catch w języku C# (jak to działa dla programistów)

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Jacob Mellor
Updated: 23 kwietnia 2026

Jeśli dopiero zaczynasz przygodę z programowaniem w języku C#, być może często słyszałeś termin "instrukcja try catch". W tym samouczku zagłębimy się w świat obsługi wyjątków, skupiając się na blokach catch, i zbadamy, jak można używać instrukcji try i catch, aby uczynić kod bardziej odpornym na błędy. W trakcie pracy przedstawimy wiele przykładów z życia wziętych, które pomogą utrwalić Państwa wiedzę.

Czym są wyjątki i dlaczego należy je obsługiwać?

W języku C# wyjątek to zdarzenie, które ma miejsce podczas działania programu i zakłóca standardowy przebieg wykonywania instrukcji. W przypadku wystąpienia wyjątku przebieg programu zostaje przekierowany, a jeśli wyjątek nie zostanie obsłużony, program zostanie nagle zakończony.

Obsługa wyjątków to sposób na przewidywanie i zarządzanie tymi zakłócającymi zdarzeniami, umożliwiający programowi odzyskanie sprawności po nieoczekiwanych problemach i kontynuowanie działania zgodnie z zamierzeniami. Korzystając z bloków try i catch, możesz zapewnić, że Twój kod płynnie radzi sobie z błędami i dostarcza użytkownikom sensownych informacji zwrotnych.

Blok Try

Blok try to fragment kodu, który może generować wyjątki. Umieszczając kod w bloku try, informujesz kompilator, że chcesz obsłużyć potencjalne wyjątki, które mogą wystąpić w tym bloku.

Oto podstawowy przykład użycia bloku try:

try
{
    // Code that may generate an exception
}
catch (Exception ex)
{
    // Handle the exception
}

Blok przechwytujący wyjątki

Instrukcja catch jest używana w połączeniu z blokiem try do obsługi wyjątków. Gdy w bloku try wystąpi wyjątek, wykonanie programu przechodzi do odpowiedniego bloku catch, w którym można określić, jak program ma zareagować na ten wyjątek.

Aby przechwycić wyjątek, należy utworzyć blok catch bezpośrednio po bloku try. Blok catch zazwyczaj zawiera parametr reprezentujący przechwycony wyjątek.

Oto przykład działania instrukcji catch:

try
{
    int result = 10 / 0;
}
catch (DivideByZeroException ex)
{
    Console.WriteLine("An error occurred: " + ex.Message);
}

W tym przykladzie kod wewnatrz bloku try probuje dzielic przez zero, co spowoduje DivideByZeroException. Blok catch obsługuje następnie wyjątek, wyświetlając komunikat dla użytkownika.

Wiele bloków catch obsługujących różne wyjątki

Czasami blok try może generować różne rodzaje możliwych wyjątków. W takich przypadkach można użyć wielu bloków catch, aby obsłużyć każdy typ wyjątku osobno.

Poniższy przykład ilustruje użycie wielu bloków catch:

try
{
    int[] numbers = new int[7];
    numbers[12] = 70; // This line will throw an exception
}
catch (IndexOutOfRangeException ex)
{
    Console.WriteLine("An index out of range error occurred: " + ex.Message);
}
catch (Exception e)
{
    Console.WriteLine("An unexpected error occurred: " + e.Message);
}

W tym przykladzie kod wewnatrz bloku try probuje przypisac wartosc do indeksu tablicy, ktory nie istnieje, generujac IndexOutOfRangeException. Pierwszy blok catch obsługuje ten konkretny wyjątek, natomiast drugi blok catch przechwytuje wszelkie inne wyjątki, które mogą wystąpić.

Pamiętaj, że w przypadku stosowania wielu bloków catch należy zawsze uporządkować je od najbardziej szczegółowych do najbardziej ogólnych typów wyjątków.

Filtry wyjątków Dodawanie warunków do bloków Catch

Filtry wyjątków pozwalają dodawać warunki do bloków catch, umożliwiając przechwytywanie wyjątków tylko wtedy, gdy spełniony jest określony warunek. Aby uzyc filtra wyjatkow, dodaj slowo kluczowe when, a nastepnie warunek w twoim oswiadczeniu catch.

Poniższy przykład ilustruje zastosowanie filtrów wyjątków:

try
{
    int result = 10 / 0;
}
catch (DivideByZeroException ex) when (ex.Message.Contains("divide"))
{
    Console.WriteLine("An error occurred: " + ex.Message);
}
catch (DivideByZeroException ex)
{
    Console.WriteLine("A different divide by zero error occurred: " + ex.Message);
}

W powyzszym przykladzie pierwszy blok catch obsluzy DivideByZeroException tylko wtedy, gdy wiadomosc o wyjatku zawiera slowo "dziel". Jeśli warunek nie zostanie spełniony, drugi blok catch zajmie się wyjątkiem.

Blok Finally zapewnia wykonanie kodu

W niektórych przypadkach może zaistnieć potrzeba zapewnienia, że określony fragment kodu zostanie wykonany, niezależnie od tego, czy wystąpi wyjątek, czy nie. Aby to osiagnac, mozesz uzyc bloku finally.

Blok finally jest umieszczany po blokach try i catch i zawsze jest wykonywany, niezaleznie od tego, czy wystapi wyjatek.

Oto przyklad, ktory demonstruje uzycie bloku finally:

try
{
    int result = 10 / 2;
}
catch (DivideByZeroException ex)
{
    Console.WriteLine("An error occurred: " + ex.Message);
}
finally
{
    Console.WriteLine("This line will always be executed.");
}

W powyzszym przykladzie, nawet jezeli kod w bloku try nie wygeneruje wyjatku, blok finally nadal zostanie wykonany.

Wyjątki niestandardowe: dostosowywanie wyjątków do własnych potrzeb

Czasami może zajść potrzeba utworzenia własnych, niestandardowych wyjątków w celu obsługi konkretnych wyjątków w kodzie. Aby to zrobic, mozesz stworzyc nowa klase, ktora dziedziczy z klasy Exception.

Oto przykład tworzenia niestandardowego wyjątku:

public class CustomException : Exception
{
    public CustomException(string errorMessage) : base(errorMessage)
    {
    }
}

Teraz możesz używać tego niestandardowego wyjątku w blokach try i catch w następujący sposób:

try
{
    throw new CustomException("This is a custom exception.");
}
catch (CustomException ex)
{
    Console.WriteLine("A custom exception occurred: " + ex.Message);
}

W tym przykladzie blok try rzuca instancje CustomException, ktore jest nastepnie przechwycone i obsluzone przez blok catch.

IronPDF: Integracja funkcji PDF z obsługą wyjątków

Dowiedz się więcej o IronPDF – popularnej bibliotece do tworzenia, edycji i wyodrębniania treści z plików PDF w języku C#. W tej sekcji omówimy, w jaki sposób można zintegrować IronPDF z podejściem do obsługi wyjątków typu try-catch, aby płynnie radzić sobie z potencjalnymi błędami.

Instalacja IronPDF

Aby rozpocząć, należy najpierw zainstalować pakiet IronPDF NuGet. Można to zrobić za pomocą konsoli menedżera pakietów:

PM > Install-Package IronPdf

Można też wyszukać "IronPDF" w oknie dialogowym "Zarządzaj pakietami NuGet" w programie Visual Studio.

Tworzenie pliku PDF za pomocą IronPDF i obsługa wyjątków

Załóżmy, że chcesz utworzyć plik PDF z ciągu znaków HTML za pomocą IronPDF. Poniewaz proces tworzenia PDF moze potencjalnie powodowac wyjatki, mozesz uzyc blokow try-catch, aby je obsluzyc. Oto przyklad, jak mozesz stworzyc PDF za pomoca IronPDF i obsluzyc wyjatki za pomoca try-catch:

using IronPdf;
using System;

try
{
    var renderer = new ChromePdfRenderer();
    string html = "Hello, World!";
    PdfDocument PDF = renderer.RenderHtmlAsPdf(html);
    PDF.SaveAs("output.PDF");
    Console.WriteLine("PDF created successfully.");
}
catch (Exception ex)
{
    Console.WriteLine("An unexpected error occurred: " + ex.Message);
}

W tym przykładzie blok try zawiera kod służący do tworzenia pliku PDF przy użyciu IronPDF. Jeśli podczas procesu wystąpi wyjątek, blok catch zajmie się tym błędem, wyświetlając użytkownikowi odpowiedni komunikat o błędzie.

Pobieranie tekstu z pliku PDF i obsługa wyjątków

Możesz również wyodrębnić tekst z pliku PDF za pomocą IronPDF. Podobnie jak w poprzednim przykladzie, mozesz uzyc blokow try-catch, aby obsluzyc potencjalne wyjatki.

Oto przykład wyodrębniania tekstu z pliku PDF przy użyciu IronPDF i obsługi wyjątków:

using IronPdf;
using System;
using System.IO;

try
{
    string pdfPath = "input.PDF";
    if (File.Exists(pdfPath))
    {
        PdfDocument PDF = PdfDocument.FromFile(pdfPath);
        string extractedText = PDF.ExtractAllText();
        Console.WriteLine("Text extracted successfully: " + extractedText);
    }
    else
    {
        Console.WriteLine("The specified PDF file does not exist.");
    }
}
catch (Exception ex)
{
    Console.WriteLine("An unexpected error occurred: " + ex.Message);
}

Try/Catch w C# (Jak to dziala dla deweloperow) Figura 1

W tym przykładzie blok try zawiera kod służący do wyodrębniania tekstu z pliku PDF przy użyciu IronPDF. Jeśli podczas procesu wystąpi wyjątek, blok catch zajmie się błędem, wyświetlając użytkownikowi odpowiedni komunikat.

Wnioski

Łącząc IronPDF z podejściem do obsługi wyjątków typu try-catch, można tworzyć solidne aplikacje, które płynnie radzą sobie z błędami podczas pracy z plikami PDF. To nie tylko poprawia stabilność aplikacji, ale także zwiększa ogólny komfort użytkowania.

Pamiętaj, aby zawsze brać pod uwagę potencjalne wyjątki podczas pracy z bibliotekami zewnętrznymi, takimi jak IronPDF, i odpowiednio je obsługiwać za pomocą instrukcji try i catch. W ten sposób możesz zapewnić, że Twoje aplikacje będą odporne i przyjazne dla użytkownika, nawet w przypadku nieoczekiwanych problemów.

IronPDF oferuje bezpłatną wersję próbną swojej biblioteki, co pozwala zapoznać się z jej możliwościami bez żadnych zobowiązań. Jesli zdecydujesz sie kontynuowac uzywanie IronPDF po okresie probnym, licencjonowanie zaczyna sie od $999.

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Dyrektor ds. technologii

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczącą ponad 50 osób, obsługującą NASA, Teslę i światowe agencje rządowe.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta