Programowanie urządzeń mobilnych – wykład IV

Slides:



Advertisements
Podobne prezentacje
Wstęp do strumieni danych
Advertisements

C++ wykład 4 ( ) Przeciążanie operatorów.
C++ wykład 7 ( ) Wyjątki.
Programowanie obiektowe
Dzisiejszy wykład Wyjątki.
Wzorce.
Język ANSI C Funkcje Wykład: Programowanie komputerów
Prowadzący: mgr inż. Elżbieta Majka
Bezpieczeństwo wyjątków w C++: OpenGL
Nguyen Hung Son Uniwersytet Warszawski
Nowa wersja C# Autor: Piotr Sobczak
Szablony (wzorce) Przykład 1: Szablon klasy -
Licznik template<class Count_Type> class Count { public:
Obsługa błędów w programach i zapobieganie ich występowaniu.
Bartosz Walter Inżynieria oprogramowania Lecture XXX JavaTM – część II Bartosz Walter
Podstawy informatyki Wirtotechnologia – Wskaźniki i referencje
Programowanie wielowątkowe
Multimedia Obrazy i dźwięki w apletach Javy, praca z tekstem, zdarzenia od myszki, obsługa wyjątków w Javie, aplety z wątkami, animacja poklatkowa.
C++ wykład 7 ( ) Wyjątki. Ogólne spojrzenie na wyjątki Wyjątki zaprojektowano do wspierania obsługi błędów. System wyjątków dotyczy zdarzeń synchronicznych.
Gniazda komunikacji sieciowej w języku Java
Wykład 1: Wskaźniki Podstawy programowania Programowanie w C
.NET Remoting Łukasz Zawadzki.
Czytanie, pisanie i rysowanie – cd.. Jeszcze jeden strumyk PrintStream działa jak PrintWriter, ale: Używa domyślnego (systemowego) kodowania Nie wyrzuca.
Język Java Wielowątkowość.
Język C# Copyright, 2004 © Adam Czajka.
C# Windows Forms Zastosowania Informatyki Wykład 3
Podstawy C# Grupa .NET PO.
Programowanie strukturalne i obiektowe
Java 3 MPDI Programowanie obiektowe W7. import java.io.*; public class X { // kontrukcja throws – określenie jakie wyjątki może dana metoda // sygnalizować
Tworzenie aplikacji mobilnych
Programowanie Windows na przykładzie C# część 1
Programowanie obiektowe – zastosowanie języka Java SE
JAVA c.d.. Instrukcji wyboru SWITCH używamy, jeśli chcemy w zależności od wartości pewnego wyrażenia wykonać jeden z kilku fragmentów kodu. Jest to w.
Programowanie obiektowe III rok EiT
Andrzej Repak Nr albumu
Java – coś na temat Klas Piotr Rosik
Seminarium problemowe
Programowanie obiektowe Wykład 3 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21 Dariusz Wardowski.
Programowanie obiektowe Wykład 6 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Dariusz Wardowski.
C# Platforma .NET CZ.3 Kuba Ostrowski.
Podstawy informatyki 2013/2014 Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
  ELEMENTY JĘZYKA JAVA komentarze w Javie, słowa kluczowe i operatory, proste typy danych, tablice, podstawowy zestaw instrukcji.
K URS JĘZYKA C++ – WYKŁAD 7 ( ) Wyjątki.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Responsywne aplikacje w Windows 8 i.NET 4.5 Jakub Binkowski.
Kurs języka C++ – wykład 4 ( )
Technologie internetowe Wykład 7 Kontrola danych użytkownika.
Technologie internetowe Wykład 5 Wprowadzenie do skrytpów serwerowych.
Wyjątki. Po co nam wyjątki? Często pisząc jakiś kod staramy się go uczynić uniwersalnym, jesteśmy w stanie wykryć sytuacje niepoprawne, ale nasz kod może.
Paweł Starzyk Obiektowe metody projektowania systemów
Łukasz Bieszczad Mateusz Gałązka Karol Włodarek
Zestaw pytań nr. 3 Typy generyczne Wyjątki OPRACOWALI: JAKUB GRYCZEWSKIKINGA ROSA DANIEL KAPTEJNYWOJCIECH ŁĘCZYCKI
PO13-1 / 19 Wykład 13 Wyjątki i ich zgłaszanie Wyłapywanie wyjątków Obsługa wyjątków Wykorzystanie polimorfizmu Filtrowanie wyjątków Błędy w konstruktorach.
Podstawy informatyki Mechanizm obsługi sytuacji wyjątkowych Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu.
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
Programowanie Obiektowe – Wykład 6
Przypomnienie wiadomości – kilka zadań
Dzisiejsze zajęcia będą wyjątkowe…
Programowanie Obiektowe – Wykład 9
Strumienie, Wczytywanie, Zapisywanie, Operacje na plikach
Typy wyliczeniowe, kolekcje
Wątki, programowanie współbieżne
(według:
Delegaty Delegat to obiekt „wiedzący”, jak wywołać metodę.
PGO Dziedziczenie Michail Mokkas.
Tworzenie wątków w Javie
Zapis prezentacji:

Programowanie urządzeń mobilnych – wykład IV KIS Paweł Fiderek

Zdarzenia public event EventHandler<EventArgs> Bang; Bang(this, EventArgs.Empty);

Obsługa zdarzeń NullReferenceExcepion. if (Bang != null) Bang(this, EventArgs.Empty);

EventHandler<EventArgs> temp = Bang; if (temp != null) temp(this, EventArgs.Empty); EventHandler<EventArgs> temp = Bang; if (temp != null) { var list = ev.GetInvocationList(); foreach (EventHandler<EventArgs> d in list) try d.Invoke(this, EventArgs.Empty); } catch (Exception) { }

Wyjatki Wyjątki maja następujące własności: wyjątki to typy, które dziedziczą z klasy System.Exception, wyjątki, które mogą być zgłaszane należy objąć sekcja try, wyjątki są zgłaszane przez stosowanie słowa kluczowego throw, w momencie zgłoszenia wyjątku, kontrola sterownia jest przekazywana do pierwszej obsługi wyjątku określonej słowem catch,

jeśli nie ma obsługi zgłoszonego wyjątku, program zostaje zatrzymany i wyświetlany jest komunikat o błędzie, nie należy przechwytywać wyjątku, który nie jest możliwy do obsłużenia i wprowadzenia, poprzez to aplikacja przechodzi w stan nieokreślony. W przypadku przechwycenia System.Exception najlepiej zgłosić ten wyjątek ponownie na końcu bloku catch, warto w bloku wyjątku podawać nie tylko typ wyjątku ale ta reprezentująca wyjątek może dostarczyć dodatkowych informacji o powodach wystąpienia sytuacji krytycznej,

obiekty wyjątku zawierają szczegółowe informacje o błędzie, min obiekty wyjątku zawierają szczegółowe informacje o błędzie, min. stan stosu wywołań oraz tekstowy opis błędu, kod w sekcji finally jest wykonywany nawet w przypadku zgłoszenia wyjątku, blok finally warto stosować do zwalniana użytych zasobów, np.: zamykania otwartych strumieni i plików, wyjątki zarządzane w platformie .NET są implementowane z użyciem struktury wyjątków Win32/Win64, jednak nie można ich traktować jako wyjątków systemowych.

try { … } catch(nazwa_wyjątku1)

catch(nazwa_wyjątku2) { … } finalny

class Pokaz { public static void Main() int[] tablica = new int[10]; try for (int i = 0; ; i++) tablica[i] = i; Console.WriteLine(i); }} catch(IndexOutOfRangeException) Console.WriteLine(„Nastąpiło właśnie przepełnienie indeksu”); }}}

Najczęstsze przyczyny rzucanych wyjątków ArraryTypeMismatchException – Typ wartości jaki chcemy przypisać jest niezgodny z typem docelowym DivideByZeroException – Próba dzielenia przez zero IndexOutOfRangeException – Przekroczenie indeksu InvalidCastException – Niepoprawne rzutowanie w czasie rzeczywistym OutOfMemoryException – Porażka wywołania new z powodu braku wolnej pamięci OverflowException – Arytmetyczne przepełnienie

Delegacje Bardzo często spotkamy się w naszych programach z sytuacją, w której nasz program wykonuje jakieś działanie, ale nie wie jakich obiektów a nawet metod ma w tym celu użyć. Na przykład: naciśnięcie przycisku ma poinformować inny obiekt, że przycisk został przyciśnięty. Ale jaki to obiekt? Nie wiadomo, dlatego najlepszym rozwiązaniem jest połączenie tego przycisku z delegatem, który następnie w czasie wykonywania się programu wywoła odpowiednią metodę. Możemy powiedzieć więcej, delegacje i zdarzenia są ściśle powiązane ze sobą, ponieważ delegat potrafi obsługiwać zdarzenie.

Konstrukcja delegacji public delegate typ name(params); Typ - typ zwracanej przez delegaturę wartości np. in, string lub void; Name - nazwa delegacji wykorzystywana potem do jej wywołania; Params – parametry delegatury, muszą być zgodne z parametrami funkcji której delegacja dotyczy;

Delegacje – przykład użycia public class Delegaty { public delegate int MojDelegat(int a, int b); public int Dodaj(int a, int b) return a + b; }

public int Odejmij(int a, int b) { return a - b; } public int Pomnoz(int a, int b) return a * b; public int Podziel(int a, int b) return a / b;

class Glowna { static void Main() Delegaty d = new Delegaty(); Delegaty.MojDelegat dodawanie = new Delegaty.MojDelegat(d.Dodaj); int wynikDodawania = dodawanie(4, 6); System.Console.WriteLine("Wynik dodawania wynosi: {0}.", wynikDodawania.ToString());

Delegaty. MojDelegat odejmowanie = new Delegaty. MojDelegat(d Delegaty.MojDelegat odejmowanie = new Delegaty.MojDelegat(d.Odejmij); int wynikOdejmowania = odejmowanie(22, 11); System.Console.WriteLine("Wynik odejmowania wynosi: {0}.", wynikOdejmowania.ToString()); ……………………………………………………………………… //analogicznie dla mnożenia i dzielenia }

Delegacje zdarzeń public delegate void EventHandler(object sender, EventArgs e); public class Przycisk { public event EventHandler Klikniecie; }

Wątki w Windows Mobile using System.Threading; …………………………. private void proc() { ……………. } ……………… Thread name = new Thread(proc); ……………………..

Klasa Thread - właściwości IsAlive IsBackground IsThreadPoolThread ManagedThreadId Name Piority ThreadState

Klasa Thread - metody Abort() Interrupt() Join() Start()

Klasa Thread - właściwości statyczne CurrentContext CurrentPrincipal CurrentThread

Klasa Thread - metody statyczne BeginCriticalRegion() EndCriticalRegion() GetDomain() GetDomainID() ResetAbort() Sleep() SpinWait() VolatileRead() VolatileWrite()

Klasa Thread - Typ wyliczeniowy ThreadState Aborted AbortRequested Background Running Stopped StopRequested Unstarted WaitSleepJoin

Priorytet wyjątków Highest AboveNormal Normal BelowNormal Lowest

Zastowanie teorii w praktyce - przykłady