Wyjątki i obsługa błędów

Podobne dokumenty
private void pasekstanutoolstripmenuitem_click(object sender, EventArgs e) { statusstrip1.visible = pasekstanutoolstripmenuitem.

Aplikacja notatnik. Opracował: Damian Krzesimowski

Metodyka programowania. Edytor tekstu. Specyfikacja

Wykład 9 Kolekcje, pliki tekstowe, Przykład: Notatnik

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

Podstawy i języki programowania

private: System::Void button1_click(system::object^ sender, System::EventArgs^ e) {

STWORZENIE MOBILNEJ APLIKACJI,

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Podstawowe kontrolki graficzne. Obsługa plików poprzez kontrolki

Prosta książka telefoniczna z wykorzystaniem zapisu do pliku

Ćwiczenia laboratoryjne. Oprogramowanie i badanie prostych metod sortowania w tablicach

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Zasady Programowania (Projektowanie) C++ - część 6 1/9 Programowanie Wizualno Obiektowe (3)

Programowanie telefonów z Windows Phone 7, cz. 4

Ćwiczenia 9 - Swing - część 1

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Zaawansowane aplikacje WWW - laboratorium

Biblioteka Windows Forms

Programowanie Wizualno Obiektowe - zajęcia 2 (PWO_BCPP_2_2) Tworzenie i kompilowanie projektów Programowanie Wizualno Obiektowe Zajęcia 2, część 2

Dodanie nowej formy do projektu polega na:

Laboratorium 10 - Web Services

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Wykład 10 Kolekcje, pliki tekstowe, c.d. Przykład: Notatnik

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

Katalog książek cz. 2

Programowanie obiektowe

Bezpieczne uruchamianie apletów wg

Programowanie Komputerów

Ekspert radzi. mechanizm w enova, umożliwiający wskazanie domyślnej drukarki dla danego stanowiska i wydruku. Strona 1 z 8. Ekspert radzi.

2) W wyświetlonym oknie należy zaznaczyć chęć utworzenia nowej aplikacji (wygląd okna może się różnić od powyższego); kliknąć OK

Metodyka programowania. Visual Studio C# Formularze

akademia androida Składowanie danych część VI

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium cyfrowej techniki pomiarowej. Ćwiczenie 4

Zaawansowane techniki programowania C#

Programowanie w środowisku graficznym GUI

Aplikacje internetowe i rozproszone - laboratorium

Metodyka programowania. Edytor tekstu. Komponenty edytora

Delphi 7 + Indy 10 Przykłady prostych aplikacji sieciowych

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Visual Studio instalacja

Zad.30. Czy można utworzyć klasę, która implementuje oba interfejsy?

Projektowanie aplikacji internetowych laboratorium

Programowanie aplikacji okienkowych Windows

Programowanie Obiektowe Ćwiczenie 4

Programowanie obiektowe

Programowanie w technologii.net wykład 4 Aplikacja i okna

Języki i metodyka programowania. Język C# pętle, sterowanie, wyjątki

Java Zadanie 1. Aby poprawnie uruchomić aplikację desktopową, należy zaimplementować główną metodę zapewniającą punkt wejścia do programu.

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania. Programowanie systemów informatycznych laboratorium. Ćw. 3: Akwizycja danych. RS 232 cd.

Podstawy programowania. Ćwiczenie. Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio

Notatnik w Windows Forms

SWING c.d. przydatne narzędzia: JFileChooser, JOptionPane. drag'n drop, menu kontekstowe.

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Platforma.NET. Laboratorium nr 1 Podstawy języka C#

Tworzenie i obsługa graficznego interfejsu uŝytkownika

Rozdział 3. Zapisywanie stanu aplikacji w ustawieniach lokalnych

WYŻSZA SZKOŁA ZARZĄDZANIA I ADMINISTRACJI z siedzibą w Zamościu

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

Testy jednostkowe - zastosowanie oprogramowania JUNIT 4.0 Zofia Kruczkiewicz

Testowanie II. Celem zajęć jest zapoznanie studentów z oceną jakości testów przy wykorzystaniu metryk pokrycia kodu testami (ang. code coverage).

Programowanie w MS Visual Studio 2005 z wykorzystaniem MS SQL Server 2005

Programowanie Obiektowe GUI

1 Pierwsze kroki w C++ cz.3 2 Obsługa plików

Metodyka programowania

Programowanie wielowarstwowe i komponentowe

Instrukcja 5 Laboratorium z Podstaw Inżynierii Oprogramowania. Warstwy integracji z bazą danych: Wzorzec DAO Technologia ORM

W powyższym kodzie utworzono wyliczenie dni tygodnia.

Klasy cd. Struktury Interfejsy Wyjątki

Wykład 12. Programowanie serwera MS SQL 2005 w C#

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Throwable. Wyjatek_1(int x_) { x = x_; } int podaj_x()

Programowanie obiektowe

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019

Zaawansowane aplikacje internetowe - laboratorium

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

Język C++ wykład VIII

Wykład 7 Okna dialogowe, menu, pasek stanu itp.

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium przyrządów wirtualnych. Ćwiczenie 3

TURNINGPOINT KROKI DO URUCHOMIENIA TESTU NA PC

Przykładowa dostępna aplikacja w Visual Studio - krok po kroku

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

Aplikacje WWW - laboratorium

Java. Programowanie Obiektowe Mateusz Cicheński

Języki i metody programowania Java INF302W Wykład 3 (część 1)

Budowa aplikacji wielowarstwowych zastosowanie szablonów. Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz

Podstawy i języki programowania

Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego

WYJĄTKI. Jest ona jednak czasochłonna i prowadzi do duŝego zapotrzebowania na zasoby systemu.

JAVA. Strumienie wejścia i wyjścia. Pliki - zapis i odczyt

Microsoft.NET: LINQ to SQL, ASP.NET AJAX

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Kalkulator. Programowanie komputerów. Kalkulator możliwe udoskonalenia. Kalkulator. Kalkulator. Kalkulator możliwe udoskonalenia

2. W oknie dialogowym Choose Toolbox Items w zakładce.net Framework Components naciskamy przycisk Browse...

Transkrypt:

Wyjątki i obsługa błędów 1. Try catch using System; public class Example public static void Main() int number1 = 3000; int number2 = 0; Console.WriteLine(number1 / number2); catch (DivideByZeroException) Console.WriteLine("Division of 0 by zero.", number1); // The example displays the following output: // Division of 3000 by zero. class ProgramLog System.IO.FileStream logfile = null; void OpenLog(System.IO.FileInfo filename, System.IO.FileMode mode) void WriteLog() if (!this.logfile.canwrite) throw new System.InvalidOperationException("Logfile cannot be read-only"); // Else write data to the log and return. static int GetValueFromArray(int[] array, int index) return array[index]; catch (System.IndexOutOfRangeException ex) System.ArgumentException argex = new System.ArgumentException("Index is out of range", "index", ex); throw argex;

static void TestCatch2() System.IO.StreamWriter sw = null; sw = new System.IO.StreamWriter(@"C:\test\test.txt"); sw.writeline("hello"); catch (System.IO.FileNotFoundException ex) // Put the more specific exception first. System.Console.WriteLine(ex.ToString()); catch (System.IO.IOException ex) // Put the less specific exception last. System.Console.WriteLine(ex.ToString()); finally sw.close(); System.Console.WriteLine("Done"); static void TestFinally() System.IO.FileStream file = null; //Change the path to something that works on your machine. System.IO.FileInfo fileinfo = new System.IO.FileInfo(@"C:\file.txt"); file = fileinfo.openwrite(); file.writebyte(0xf); finally // Closing the file allows you to reopen it immediately - otherwise IOException is thrown. if (file!= null) file.close();

file = fileinfo.openwrite(); System.Console.WriteLine("OpenWrite() succeeded"); catch (System.IO.IOException) System.Console.WriteLine("OpenWrite() failed"); 2. Potwierdzenie zamknięcia aplikacji Zadaniem jest stworzenie prostego edytota graficznego posiadającego opcje zapisywania pliku oraz sprawdzania czy po wprowadzonych zmianach ma być wersja zapisywana. W designerze dodać metodę zdarzeniową FormClosing. DialogResult dr=messagebox.show( Czy zapisać?, this.text, switch(dr) MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button3); case DialogResult.Yes: MessageBox.Show( Opcja 1-zapisz savefiledialog ); break; case DialogResult.No: break; case DialogResult.Cancel: e.cancel=true; break; default: e.cancel=true; break; W programie uwzględnij: Okno dialogowe do zapisywania Metodę sprawdzającą czy dokument się zmienił (np. metodę typu bool opierającą się na TextChanged komponentu textbox) 3. Odczytywanie tekstu z pliku Napisać prosty program do odczytywania tekstu z pliku, tekst wczytywany do tablicy łańcuchów. Skorzystaj: using System.IO; oraz typu ogólnego List: List<string> tekst=new List<string>();

Wyjątek odczytu pliku (skorzystaj z openfiledialog): using (StreamReader sr=new StreamReader(nazwa_pliku)) string linijka; while((linijka=sr.readline())!=null) //wczytywanie do akapitów można bezpośrednio zwrócić do własności Lines komponentu TextBox, jeżeli całość pliku to np. ReadToEnd tekst.add(linijka); return tekst.toarray(); catch (Exception e) MessageBox.Show( Bład +nazwa_pliku+ ( +e.message+ ) ); return null; W programie można stworzyć metodę do wczytywanie plików: public static string[] WczytajPlik(string nazwa_pliku) i wykorzystać bezpośrednio w menu jako otwórz plik (element ToolStripMenuItem_Click) string nazwa_pliku=ofd1.filename; textbox1.lines=wczytajplik(nazwa_pliku). Zapoznaj się z własnościami openfiledialog: DefaultExt, InitialDirectory, FileName, Filter Przykładowy filtr: Tekstowe(*.txt) *.txt Wszystkie pliki (*.*) *.* W przypadku zapisywanie należy stworzyć metodę zapisu z argumentami typu string oraz string[]: Public static void ZapiszPlik(string nazwa_pliku, string[] tekst) Using (StreamWriter sw=new SW(nazwa_pliku)) foreach (string wiersz in tekst) sw.writeline(wiersz);

Wywołanie: ZapiszPlik(saveFileDialog1.FileName, textbox1.lines) Dodaj opcje: Undo(), Cut(), Copy(), Paste(), SelectedText, SelectAll 4. Projekt budzik Projekt ma zakładać pojawiania się okna o konkretnych godzinach, wraz z sygnalizacją dźwiękową. Można skorzystać z własności okna głównego umożliwiającego stworzenie kształtu innego okna niż prostokątny (BackGroundImage, FormBorderStyle, StartPosition, ShowInTaskbar) Komponent Panel (BorderStyle->FixedSingle, Dock->Fill Komponenty Label (ustawienia dowolnych wartości tekstowych) Komponent Timer (Interval na 4000 mm, Enabled->True, metoda timer_tick -> Hide(), time1.enabled=false;) Można również powiązać metodę Click okna Form1 z metodą timer_tick Dodać obiekt NotifyIcon z dodanym menu kontekstowym po kliknięciu prawego przycisku myszy. (dodać komponenty: NotifyIcon oraz ContextMenuStrip-ustalić dwie dowolne warianty) Ustalić metodę zdarzenia Click pierwszej opcji: Show(), timer1.enabled=true; Zdefiniować drugą opcję jako zamknięcie aplikacji: notifyicon1.visible=false; Close(); Ustalić wartość notifyicon1 ->Visible na true. Dodać iconę właśność Icon w Properties Powiązać obiekt contextmenustrip1 z wlasnością ContextMenuStrip obiektu notifyicon1 Zdefiniować metodę zdarzeniową MouseMove na obiekcie notifyicon1: notifyicon1.text= Godzina: ( +DateTime.Now.ToShortTimeString()+ ) ; Opcjonalnie można ustalić wartość własności BaloonTipTitle (obiekt notifyicon) Info (zdefiniować zdarzenie DoubleClick w celu pokazywania aktualnej daty w wersji rozszerzonej np. String s= data +DateTime.Today.ToLongDateString(); notifyicon1.balloontiptext=s;) Odtwarzanie dźwięku: komponent System.Media.SoundPlayer Pobrać dowolny plik WAVE I za pomocą Solution Explorer dodać do zasobów. Zmiana wartość w Solution Explorer z Copy to Output Directory na Copy if newer lub Copy always. Dodaj Timer (timer2) Dodać metodę Form1_Load oraz zdefiniować metodę sprawdzenia danej godziny.

DateTime godz=new DateTime(DateTime.NowYear, DateTime.NowMonth, DateTime.NowDay, DateTime.NowHour+1,0,0,0); long odstep=(godz.ticks-datetime.now.ticks)/10000; timer2.interval=(int)odstep; timer2.enabled=true Zdefiniować metodę timer2.tick timer2.interval=360000; //jeżeli co godzinę 1000ms60sek60min (new System.Media.SoundPlayer(Utwór.wav )).Play(); notifyicon1_doubleclick(sender, e); //opcjonalne