Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
Dzisiejsze zajęcia będą wyjątkowe…
Akademia C# 8 Dzisiejsze zajęcia będą wyjątkowe…
2
Wyjątkowo … obsługa wyjątków
Akademia C# 8 Wyjątkowo … obsługa wyjątków
3
Nie lubimy wyjątków, ale …
4
Tak naprawdę to one nam pomagają:
Określić lokalizację błędu w naszym programie Poprzez określenie typu wyjąku łatwiej domyślić się co jest źle Bo wiesz jaki rodzaj błędu wystąpił (np. NullReferenceException) Wyjątki pomagają ci określić sytuacje, w których twój kod zachowuje się w sposób niespodziewany
5
Wszystkie wyjątki dziedziczą po klasie Exception
6
Try-catch W momencie napotkaniu problemu w bloku try, instrukcje zostają przerwane i wykonywany jest kod z catch (o ile ten blok istnieje i czy typ odpowiada wyjątkowi).
7
Try-catch-finally Instrukcje z finally wykonają się zawsze!
8
Najpopularniejsze wyjątki
ArithmeticException ArrayTypeMismatchException DivideByZeroException IndexOutOfRangeException InvalidCastException NullReferenceException OutOfMemoryException OverflowException StackOverflowException TypeInitializationException
9
DivideByZeroException
Przykład int a = 0, b = 0; int wynik ; try { a = 5; b = 0; wynik = a / b; Console.WriteLine(wynik); } catch (DivideByZeroException ex) Console.WriteLine(ex.message);
10
FormatException Przykład
Np. gdy próbujesz konwertować tekst (np. „abc”) na liczbę. int a; try { Console.WriteLine("Podaj a"); // podajemy na konsoli „abc” a = int.Parse(Console.ReadLine()); } catch (FormatException ex) Console.WriteLine("nie podałeś liczby");
11
InvalidCastException
object o2 = new object(); try { int i2 = (int)o2; // Error } catch (InvalidCastException e) Nieoczekiwany typ danych. Klient przekazał do metody dane niewłaściwego typu. Np. gdy własny typ próbujesz sobie rzutować na int.
12
NullReferenceException
object o2 = null; try { int i2 = (int)o2; // Error } catch (NullReferenceException e) Console.WriteLine("ojj wyjątek");
13
IndexOutOfRangeException
int GetInt(int[] array, int index) { try return array[index]; } catch (System.IndexOutOfRangeException e) throw new System.ArgumentOutOfRangeException( "Parameter index is out of range.");
14
OverflowException byte liczba = 125; int x = liczba * 3;
byte l = Convert.ToByte(x); Console.WriteLine(liczba);
15
Dobre rady: Unikaj przechwytywania wyjątku Exception. Używaj bardziej szczegółowych Wyjątków, które precyzyjniej opisują twoje nieprawidłowości.
16
Instrukcja throw; Zgłaszanie wyjątku za pomocą throw;
throw new NullReferenceException(message);
17
Możesz tworzyć własne wyjątki
public class Exception1 : Exception { public Exception1(string message) : base(message){} } public class SomeException : Exception1 { public SomeException(string message) : base(message){} }
18
Zadanie Stwórz obiekt kalkulator (obsługiwane działania + oraz -), który zabroni dzielenia przez zero oraz wykryje przepełnienie wartości. Sprawdź jakie maksymalne wartości można zapisać w poszczególnych typach liczbowych języka C#. Aplikacja ma działać w pętli umożliwiając wiele razy obliczenie sumy oraz różnicy.
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.