Software Exception Flow Analysis for WPF C# Asynchronous Programs Using Microsoft Visual Studio

Size: px
Start display at page:

Download "Software Exception Flow Analysis for WPF C# Asynchronous Programs Using Microsoft Visual Studio"

Transcription

1 Software Exception Flow Analysis for WPF C# Asynchronous Programs Using Microsoft Visual Studio Summary Recently, I was working on an implementation of a new software product feature based on asynchronous computation for a project that was upgraded from Visual Studio (VS) 2008 to 2012 and targeted.net 4.5 instead of.net 3.5. One of my concerns was dealing with software exceptions. I decided to test what happens in WPF-based asynchronous programs that lack of proper exception handling. This paper gives a few examples, to demonstrate what you can expect from unreliable code. Here you will find: Code examples four asynchronous techniques process-wide exception handlers Views of propagation of exceptions results of tracing exceptions thrown at different places in code examples analysis of information collected in Visual Studio Debugger Microsoft Visual Studio features Exception Assistant settings Debugger Dialog Boxes The paper will be useful for those who are in the process of examining asynchronous techniques and different.net, C# and VS Debugger features. Asynchronous Code Following are four examples of C# classes that implement different asynchronous techniques allowed in different C#\.NET versions. Each class has its specific CalculateAsync method called from a WPF button control handler. A callback was used to make all examples similar even if known implementation patterns do not use them. The code has embedded throw statements (shown in red that have been commented out) to simulate exceptions. The Common Language Runtime creates an object that presents an exception. Exception handling is based on these objects and protected blocks of code. The generated exceptions then go unhandled in programmed examples logic. This is minimal code used to demonstrate unhandled software exception flows. Variables indata and outdata are included in the code only to express that the asynchronous actions may use input data and return results. Production level error checking has been omitted.

2 Event Based Asynchronous Code The simplified code in Listing 1 shows an implementation class that has a single <MethodName>Async method and a corresponding <MethodName>CompletedEventHandler method. Listing 1. Event Based Asynchronous Code Example.

3 BackgroundWorker Thread Based Asynchronous Code The simplified code in Listing 2 shows an implementation class that has a single <MethodName>Async method that explicitly creates and runs a BackgroundWorker thread. Listing 2. BackgroundWorker Thread Based Asynchronous Code Example. Task Based Asynchronous Code The simplified code in Listing 3 shows an implementation class that has a single <MethodName>Async method that explicitly creates and starts a Task<ReturnType> available with the.net Framework 4.0. Listing 3. Task Based Asynchronous Code Example.

4

5 Async\Await Based Asynchronous Code The simplified code in Listing 4 shows an implementation class using the C# 5.0 async and await keywords that are used by the compiler to build a state machine. The word async is not applied to the corresponding calling method so that all examples are similar. In contrast to the three previous examples, in this example, the Calculation () method runs on the main GUI thread base on the provided Synchronization Context. Care must be taken to not include CPU-bound code in the Calculation () method because it will block the main GUI thread, which is exactly the issue that is avoided with asynchronous code. Listing 4. Async\Await Based Asynchronous Code Example.

6 Calling Code The simplified code in Listing 5 shows possible options of calling of above examples. The callback method is used in all four examples Listing 5. Calling Code Example.

7 Last Resort It is extremely important to catch unhandled exceptions from different parts of the code to prevent running the application in a wrong state. What you will do in global handlers for unhandled exceptions depends on your design. Suggestions on processing these can be found online. The objective of this paper is to demonstrate which exceptions can be caught and where they will be caught. The XAML code in Listing 6 in App.xaml shows how to specify event handlers for Application.Startup and Application.DispatcherUnhandledException events. Listing 6. Specifying Event Handlers Example. The code in Listing 7 for App class in App.xaml.cs shows how to specify event handlers for unhandled exceptions. All handlers here are presented only for demonstration and do not provide steps for graceful shutdown.

8 Listing 7. Specifying Handlers for Unhandled Exceptions Example.

9 Know Your Debugger Setting Debugger To set how the Debugger will help you in exceptions investigation, you need to navigate to Options Dialog Box (Fig. 1). In VS 2008 you need to navigate to Tools\Options and in VS 2012 you will find it under Debug\Options and Settings Figure 1.Visual Studio Options Dialog Box. In the Options Dialog Box, choose General under the Debugging node. In the right pane, there is the Enable the exception assistant check box. The Exception Assistance dialog box is used (MSDN) for managed code only instead of the old Exception dialog box and gives more information. If this check box is checked, you may also check the dependent Unwind the call stack on unhandled exceptions check box. This functionality automatically unwinds the call stack to the topmost frame in your solution where the exception was thrown and then by pressing a function key to continue you will generate the exception repeatedly. Using Debugger In Table 1 we collected trace informationforone of the possible unhandled runtime exceptions that occurs in application code. We simulated this exception by embedding a throw new Exception

10 ("1"); statement in our demonstration code (see Event Based Asynchronous Code section above).table 1illustrates behavior of MS Visual Studio Debugger when the exception s text message 1 is thrown. The Figures below this table demonstrate appearance of VS Debuggers Dialog Boxes. # Subscribed for Unhandled Exception Event AppDomain. Unhandled Exception Event Application. Dispatcher Unhandled Exception Event Options\ Debugging\ General Enable the Exception Assistant and Unwind the MS Visual Studio and.net Versions 2008.Net 3.5 Call Stack 1 Yes Yes Checked Assistant DlgBox(Fig. 2) ApplUnhndlEx Hndl AppDomUnhndl Ex Hndl Assistant DlgBox(Fig. 2) Program has exited 2 Yes Yes Unchecked Ex DlgBox(Fig. 3) ApplUnhndlEx Hndl AppDomUnhndlEx Hndl Ex DlgBox(Fig. 4) Program has exited 3 No No Checked Start loop Assistant DlgBox(Fig. 2) Continue in loop 4 No No Unchecked Ex DlgBox(Fig. 5) Program has exited 2012.Net 4.5 Assistant DlgBox(Fig. 7) Appl UnhndlEx Hndl Assistant DlgBox(Fig. 6) (sys) AppDomUnhndlEx Hndl Assistant DlgBox(Fig. 6) Program has exited Appl UnhndlEx Hndl (sys) Ex DlgBox(Fig. 8) Program has exited Start loop Assistant DlgBox(Fig. 7) FirstChanceEx Hndl Assistant DlgBox(Fig.7) Continue in loop Ex DlgBox(Fig.9) Program has exited Table 1. Demonstrates dependence of an Exception Flow on the use of Exception Assistant Dialog Box and Presence of Handlers for Unhandled Exceptions As seen from this Table and Figures below: VS 2012 has improved appearance of Dialog Boxes. VS 2012 Assistant Dialog Box is different depends on situation it will appear. When there are no handlers for unhandled exceptions and VS Debugger is set to unwind call stack, the Assistant Dialog Box will appear in a loop until the user stops debugging. The Assistant Dialog Boxes are different when there are registered handlers for unhandled exceptions and when they are not registered. Figure 10 shows examples of Message and InnerException values produced by a UnobservedTask exception.

11 Figure 2. VS2008 Exception Assistant Dialog Box Figure 3. VS2008 Old Exception Dialog Box (first)

12 Figure 4. VS2008 Old Exception Dialog Box (second) Figure 5. VS2008 Old Exception Dialog Box (third)

13 Figure 6. VS2012 Exception Assistant Dialog Box (first) Figure 7. VS2012 Exception Assistant Dialog Box (second)

14 Figure8. VS2012 Exception Dialog Box (first) Figure 9. VS2012 Exception Dialog Box (second)

15 Figure 10. VS2012 Dialog Box with a Message for a UnobservedTask exception Tracing Unhandled Exceptions In Table 2 trace information was collected for exception flows generated at different places of asynchronous processing. Exception number (column 3) corresponds to a value of error message that was used to initialize a thrown instance of the Exception type. This exception is simulated by embedding a throw new Exception ("<Value>"); statement in the demonstration code above. Table 2 illustrates where unhandled exception can be handled and what happen to the application if those handlers do not modify unhandled exceptions normal flow. In other words, the graceful exit was intentionally not used. We subscribed to AppDomain.CurrentDomain.UnhandledException and Application.DispatcherUnhandledException events. Also, we subscribed to FirstChanceException event available since.net 4.0 for debugging purpose to show exception s message before common language runtime locates a handler.

16 # Async Technique Exception # 1 Event 1 Appl Unhndl Ex Hndl 2 Bckgrd Worker Thread Appl Unhndl Ex Hndl 12 Appl Unhndl Ex Hndl MS Visual Studio and.net Versions NET3.5.NET 4.5 Appl Unhndl Ex Hndl Appl Unhndl Ex Hndl (my rethrow) Appl Unhndl Ex Hndl Or without rethrow Application continues running 3 Task 21 - Appl Unhndl Ex Hndl 22 - CalculateFaulted Method Application continues running Or without CalculateFalted() UnobservedTask Ex Hndl Application continues running 23 - CalculateFaulted1 Method Application continues running

17 4 Async/ Await 31 - UnobservedTask Ex Hndl Application continues running 32 - (on await) UnobservedTask Ex Hndl Application continues running Or if await oper is guarded by a try block (on await) Application continues running 33 - Calculate() will be executed UnobservedTask Ex Hndl Application continues running Table 2. Demonstrates exception flows generated at different places of asynchronous processing. As seen from this table: Appl Unhndl Ex Hndl is used to present the Application_DispatcherUnhandledException() method and is used to represent the AppDomain_UnhandledException() method. The former handler is called when no handlers are found to handle an exception on the GUI thread. In the example, code was not provided to inform CLR that the exception was handled. Therefore, the AppDomain.UnhandledException event is always raised for default domain and will be caught in the later handle. Catch First Chance exception before the Common Language Runtime is searching for exception handlers if you want to see what is happening when it is being thrown. UnobservedTaskException event is fired on the Garbage Collector (GC) Finalizer Thread when Garbage Collector runs, an exception not caught and Task.Wait() or Task<T>.Result is accessed. When an application continues to run there is no calls to Application_DispatcherUnhandledException and\or AppDomain_UnhandledException(). When an application continues to run without programmer s written code to react to an exception, it means that some corrupted or wrong data could be used. Closing Note This paper was written to show what one can expect from exceptions in asynchronous WPF C# programs. Adding global handlers is easy. It may prevent the application from running with wrong data and\or from its hard crash when the program is running in an unanticipated situation. It also helps with debugging. In asynchronous programs that use Tasks you should not count on a UnobservedTask exception that is complementary to unhandled exceptions because the GC will run and execute the finalizer undeterministically. It is helpful to use this during development; however, the production code has to catch exceptions at the right place.

18 Acknowledgments I would like to thank all colleagues with whom I had numerous discussions about asynchronous programming and debugging. I also thank Debie Urycki for proof reading and suggestions on corrections. About the Author Boris Eligulashvili is a Systems Software Architect at Viewray, Inc. a medical device company developing advanced radiation therapy technology for the treatment of cancer. In his career he has implemented many innovative software solutions for various software development projects. Boris is reachable by at beligulashvili@viewray.com.

11Debugging and Handling. C# Programming: From Problem Analysis to Program Design 2nd Edition. David McDonald, Ph.D. Director of Emerging Technologies

11Debugging and Handling. C# Programming: From Problem Analysis to Program Design 2nd Edition. David McDonald, Ph.D. Director of Emerging Technologies 11Debugging and Handling 11Exceptions C# Programming: From Problem Analysis to Program Design 2nd Edition David McDonald, Ph.D. Director of Emerging Technologies Chapter Objectives Learn about exceptions,

More information

ECE 122. Engineering Problem Solving with Java

ECE 122. Engineering Problem Solving with Java ECE 122 Engineering Problem Solving with Java Lecture 24 Exceptions Overview Problem: Can we detect run-time errors and take corrective action? Try-catch Test for a variety of different program situations

More information

C# Syllabus. MS.NET Framework Introduction

C# Syllabus. MS.NET Framework Introduction C# Syllabus MS.NET Framework Introduction The.NET Framework - an Overview Framework Components Framework Versions Types of Applications which can be developed using MS.NET MS.NET Base Class Library MS.NET

More information

Exceptions in Java

Exceptions in Java Exceptions in Java 3-10-2005 Opening Discussion Do you have any questions about the quiz? What did we talk about last class? Do you have any code to show? Do you have any questions about the assignment?

More information

Question And Answer.

Question And Answer. Q.1 Which type of of the following code will throw? Using System; Using system.io; Class program Static void Main() Try //Read in non-existent file. Using (StreamReader reader = new StreamReader(^aEURoeI-Am

More information

Microsoft Visual C# Step by Step. John Sharp

Microsoft Visual C# Step by Step. John Sharp Microsoft Visual C# 2013 Step by Step John Sharp Introduction xix PART I INTRODUCING MICROSOFT VISUAL C# AND MICROSOFT VISUAL STUDIO 2013 Chapter 1 Welcome to C# 3 Beginning programming with the Visual

More information

Exception Handling Introduction. Error-Prevention Tip 13.1 OBJECTIVES

Exception Handling Introduction. Error-Prevention Tip 13.1 OBJECTIVES 1 2 13 Exception Handling It is common sense to take a method and try it. If it fails, admit it frankly and try another. But above all, try something. Franklin Delano Roosevelt O throw away the worser

More information

Asynchronous Functions in C#

Asynchronous Functions in C# Asynchronous Functions in C# Asynchronous operations are methods and other function members that may have most of their execution take place after they return. In.NET the recommended pattern for asynchronous

More information

Programming C# 5.0. Ian Griffiths O'REILLY' Beijing Cambridge * Farnham Kbln Sebastopol Tokyo

Programming C# 5.0. Ian Griffiths O'REILLY' Beijing Cambridge * Farnham Kbln Sebastopol Tokyo Programming C# 5.0 Ian Griffiths O'REILLY' Beijing Cambridge * Farnham Kbln Sebastopol Tokyo Preface xvii 1. Introducing C# 1 Why C#? 1 Why Not C#? 3 C#'s Defining Features 5 Managed Code and the CLR 7

More information

DNWSH - Version: 2.3..NET Performance and Debugging Workshop

DNWSH - Version: 2.3..NET Performance and Debugging Workshop DNWSH - Version: 2.3.NET Performance and Debugging Workshop .NET Performance and Debugging Workshop DNWSH - Version: 2.3 8 days Course Description: The.NET Performance and Debugging Workshop is a practical

More information

Debugging and Handling Exceptions

Debugging and Handling Exceptions 12 Debugging and Handling Exceptions C# Programming: From Problem Analysis to Program Design C# Programming: From Problem Analysis to Program Design 1 4th Edition Chapter Objectives Learn about exceptions,

More information

Asynchronous Interactions and Managing Modeless UI with Autodesk Revit API

Asynchronous Interactions and Managing Modeless UI with Autodesk Revit API Asynchronous Interactions and Managing Modeless UI with Autodesk Revit API Arnošt Löbel Sr. Principal Software Engineer, Autodesk, Inc. Class Summary In this class we will explore the realms of challenging

More information

Course Hours

Course Hours Programming the.net Framework 4.0/4.5 with C# 5.0 Course 70240 40 Hours Microsoft's.NET Framework presents developers with unprecedented opportunities. From 'geoscalable' web applications to desktop and

More information

Exception-Handling Overview

Exception-Handling Overview م.عبد الغني أبوجبل Exception Handling No matter how good a programmer you are, you cannot control everything. Things can go wrong. Very wrong. When you write a risky method, you need code to handle the

More information

Parallelizing Ocean plug-in computations using the Background Worker + PFX pattern

Parallelizing Ocean plug-in computations using the Background Worker + PFX pattern Parallelizing Ocean plug-in computations using the Background Worker + PFX pattern Dmitriy Repin Program Architect, Schlumberger PTS Ocean Development Framework User Meeting Houston, October 24, 2014 2014

More information

Object Oriented Programming

Object Oriented Programming Object Oriented Programming Java lecture (10.2) Exception Handling 1 Outline Throw Throws Finally 2 Throw we have only been catching exceptions that are thrown by the Java run-time system. However, it

More information

Assoc. Prof. Marenglen Biba. (C) 2010 Pearson Education, Inc. All rights reserved.

Assoc. Prof. Marenglen Biba. (C) 2010 Pearson Education, Inc. All rights reserved. Assoc. Prof. Marenglen Biba Exception handling Exception an indication of a problem that occurs during a program s execution. The name exception implies that the problem occurs infrequently. With exception

More information

EEE-425 Programming Languages (2013) 1

EEE-425 Programming Languages (2013) 1 2 Computer programming: creating a sequence of instructions to enable the computer to do something Programmers do not use machine language when creating computer programs. Instead, programmers tend to

More information

EXCEPTION HANDLING. Summer 2018

EXCEPTION HANDLING. Summer 2018 EXCEPTION HANDLING Summer 2018 EXCEPTIONS An exception is an object that represents an error or exceptional event that has occurred. These events are usually errors that occur because the run-time environment

More information

Chapter 13 Exception Handling

Chapter 13 Exception Handling Chapter 13 Exception Handling 1 Motivations When a program runs into a runtime error, the program terminates abnormally. How can you handle the runtime error so that the program can continue to run or

More information

Microsoft. Microsoft Visual C# Step by Step. John Sharp

Microsoft. Microsoft Visual C# Step by Step. John Sharp Microsoft Microsoft Visual C#- 2010 Step by Step John Sharp Table of Contents Acknowledgments Introduction xvii xix Part I Introducing Microsoft Visual C# and Microsoft Visual Studio 2010 1 Welcome to

More information

Le L c e t c ur u e e 5 To T p o i p c i s c t o o b e b e co c v o e v r e ed e Exception Handling

Le L c e t c ur u e e 5 To T p o i p c i s c t o o b e b e co c v o e v r e ed e Exception Handling Course Name: Advanced Java Lecture 5 Topics to be covered Exception Handling Exception HandlingHandlingIntroduction An exception is an abnormal condition that arises in a code sequence at run time A Java

More information

CS313D: ADVANCED PROGRAMMING LANGUAGE

CS313D: ADVANCED PROGRAMMING LANGUAGE CS313D: ADVANCED PROGRAMMING LANGUAGE Computer Science department Lecture 6 : Abstraction Lecture Contents 2 Abstract classes Abstract methods Case study: Polymorphic processing Sealed methods & classes

More information

CS 3 Introduction to Software Engineering. 3: Exceptions

CS 3 Introduction to Software Engineering. 3: Exceptions CS 3 Introduction to Software Engineering 3: Exceptions Questions? 2 Objectives Last Time: Procedural Abstraction This Time: Procedural Abstraction II Focus on Exceptions. Starting Next Time: Data Abstraction

More information

MCSA Universal Windows Platform. A Success Guide to Prepare- Programming in C# edusum.com

MCSA Universal Windows Platform. A Success Guide to Prepare- Programming in C# edusum.com 70-483 MCSA Universal Windows Platform A Success Guide to Prepare- Programming in C# edusum.com Table of Contents Introduction to 70-483 Exam on Programming in C#... 2 Microsoft 70-483 Certification Details:...

More information

10/9/2012. Sample C# program:

10/9/2012. Sample C# program: Creating and Running Your First C# Program Text Book : C# Programming From Problem Analysis to Program design, Barbara Doyle Grading : Homeworks 20% Lecture Presentation 20% Final : % 20 Project : 40%

More information

Programming in Visual Basic with Microsoft Visual Studio 2010

Programming in Visual Basic with Microsoft Visual Studio 2010 Programming in Visual Basic with Microsoft Visual Studio 2010 Course 10550; 5 Days, Instructor-led Course Description This course teaches you Visual Basic language syntax, program structure, and implementation

More information

Windows Presentation Foundation (WPF)

Windows Presentation Foundation (WPF) 50151 - Version: 4 21 January 2018 Windows Presentation Foundation (WPF) Windows Presentation Foundation (WPF) 50151 - Version: 4 5 days Course Description: This five-day instructor-led course provides

More information

C# Programming in the.net Framework

C# Programming in the.net Framework 50150B - Version: 2.1 04 May 2018 C# Programming in the.net Framework C# Programming in the.net Framework 50150B - Version: 2.1 6 days Course Description: This six-day instructor-led course provides students

More information

COPYRIGHTED MATERIAL. Contents. Part I: C# Fundamentals 1. Chapter 1: The.NET Framework 3. Chapter 2: Getting Started with Visual Studio

COPYRIGHTED MATERIAL. Contents. Part I: C# Fundamentals 1. Chapter 1: The.NET Framework 3. Chapter 2: Getting Started with Visual Studio Introduction XXV Part I: C# Fundamentals 1 Chapter 1: The.NET Framework 3 What s the.net Framework? 3 Common Language Runtime 3.NET Framework Class Library 4 Assemblies and the Microsoft Intermediate Language

More information

Research on the Novel and Efficient Mechanism of Exception Handling Techniques for Java. Xiaoqing Lv 1 1 huihua College Of Hebei Normal University,

Research on the Novel and Efficient Mechanism of Exception Handling Techniques for Java. Xiaoqing Lv 1 1 huihua College Of Hebei Normal University, International Conference on Informatization in Education, Management and Business (IEMB 2015) Research on the Novel and Efficient Mechanism of Exception Handling Techniques for Java Xiaoqing Lv 1 1 huihua

More information

CATCH Me if You Can Doug Hennig

CATCH Me if You Can Doug Hennig CATCH Me if You Can Doug Hennig VFP 8 has structured error handling, featuring the new TRY... CATCH... FINALLY... ENDTRY structure. This powerful new feature provides a third layer of error handling and

More information

PROGRAMMING IN VISUAL BASIC WITH MICROSOFT VISUAL STUDIO Course: 10550A; Duration: 5 Days; Instructor-led

PROGRAMMING IN VISUAL BASIC WITH MICROSOFT VISUAL STUDIO Course: 10550A; Duration: 5 Days; Instructor-led CENTER OF KNOWLEDGE, PATH TO SUCCESS Website: PROGRAMMING IN VISUAL BASIC WITH MICROSOFT VISUAL STUDIO 2010 Course: 10550A; Duration: 5 Days; Instructor-led WHAT YOU WILL LEARN This course teaches you

More information

Internal Classes and Exceptions

Internal Classes and Exceptions Internal Classes and Exceptions Object Orientated Programming in Java Benjamin Kenwright Outline Exceptions and Internal Classes Why exception handling makes your code more manageable and reliable Today

More information

Concurrency: An Overview

Concurrency: An Overview CHAPTER 1 Concurrency: An Overview Concurrency is a key aspect of beautiful software. For decades, concurrency was possible but difficult. Concurrent software was difficult to write, difficult to debug,

More information

.NET FRAMEWORK. Visual C#.Net

.NET FRAMEWORK. Visual C#.Net .NET FRAMEWORK Intro to.net Platform for the.net Drawbacks of Current Trend Advantages/Disadvantages of Before.Net Features of.net.net Framework Net Framework BCL & CLR, CTS, MSIL, & Other Tools Security

More information

Chapter 14. Exception Handling and Event Handling

Chapter 14. Exception Handling and Event Handling Chapter 14 Exception Handling and Event Handling Chapter 14 Topics Introduction to Exception Handling Exception Handling in Ada Exception Handling in C++ Exception Handling in Java Introduction to Event

More information

Advanced Flow of Control -- Introduction

Advanced Flow of Control -- Introduction Advanced Flow of Control -- Introduction Two additional mechanisms for controlling process execution are exceptions and threads Chapter 14 focuses on: exception processing catching and handling exceptions

More information

C#.Net. Course Contents. Course contents VT BizTalk. No exam, but laborations

C#.Net. Course Contents. Course contents VT BizTalk. No exam, but laborations , 1 C#.Net VT 2009 Course Contents C# 6 hp approx. BizTalk 1,5 hp approx. No exam, but laborations Course contents Architecture Visual Studio Syntax Classes Forms Class Libraries Inheritance Other C# essentials

More information

The Various Faces of the.net Task Parallel Library

The Various Faces of the.net Task Parallel Library The Various Faces of the.net Task Parallel Library Luc Bläser Hochschule für Technik Rapperswil Multicore@Siemens 2015 5 Feb 2015, Nuremberg The.NET Task Parallel Library (TPL) State of the art in.net

More information

10262A VB: Developing Windows Applications with Microsoft Visual Studio 2010

10262A VB: Developing Windows Applications with Microsoft Visual Studio 2010 10262A VB: Developing Windows Applications with Microsoft Visual Studio 2010 Course Number: 10262A Course Length: 5 Days Course Overview In this course, experienced developers who know the basics of Windows

More information

Object Oriented Programming Exception Handling

Object Oriented Programming Exception Handling Object Oriented Programming Exception Handling Budditha Hettige Department of Computer Science Programming Errors Types Syntax Errors Logical Errors Runtime Errors Syntax Errors Error in the syntax of

More information

Learning to Program in Visual Basic 2005 Table of Contents

Learning to Program in Visual Basic 2005 Table of Contents Table of Contents INTRODUCTION...INTRO-1 Prerequisites...INTRO-2 Installing the Practice Files...INTRO-3 Software Requirements...INTRO-3 Installation...INTRO-3 Demonstration Applications...INTRO-3 About

More information

This module reviews the core syntax and features of the C# programming language. It also provides an introduction to the Visual Studio 2012 debugger.

This module reviews the core syntax and features of the C# programming language. It also provides an introduction to the Visual Studio 2012 debugger. Course Outline Module 1: Review of C# Syntax This module reviews the core syntax and features of the C# programming language. It also provides an introduction to the Visual Studio 2012 debugger. Overview

More information

#using <System.dll> #using <System.Windows.Forms.dll> using namespace System; using namespace System::Windows::Forms;

#using <System.dll> #using <System.Windows.Forms.dll> using namespace System; using namespace System::Windows::Forms; Lecture #13 Introduction Exception Handling The C++ language provides built-in support for handling anomalous situations, known as exceptions, which may occur during the execution of your program. Exceptions

More information

Visual Studio 2010 Silverlight No Symbols Have Been Loaded For This Document

Visual Studio 2010 Silverlight No Symbols Have Been Loaded For This Document Visual Studio 2010 Silverlight No Symbols Have Been Loaded For This Document No symbols have been loaded for this document when debugging asp.net service im getting the subject error for breakpoints set

More information

TotalView. Debugging Tool Presentation. Josip Jakić

TotalView. Debugging Tool Presentation. Josip Jakić TotalView Debugging Tool Presentation Josip Jakić josipjakic@ipb.ac.rs Agenda Introduction Getting started with TotalView Primary windows Basic functions Further functions Debugging parallel programs Topics

More information

Migrate Your Skills to Microsoft.NET Framework 2.0 and 3.0 using Visual Studio 2005 (C#)

Migrate Your Skills to Microsoft.NET Framework 2.0 and 3.0 using Visual Studio 2005 (C#) Migrate Your Skills to Microsoft.NET Framework 2.0 and 3.0 using Visual Studio 2005 (C#) Course Length: 5 Days Course Overview This instructor-led course teaches developers to gain in-depth guidance on

More information

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS PAUL L. BAILEY Abstract. This documents amalgamates various descriptions found on the internet, mostly from Oracle or Wikipedia. Very little of this

More information

Latitude Version SDK Release Notes

Latitude Version SDK Release Notes Latitude Version 6.2.1 SDK Release Notes In this document you can check out what s new, understand the known issues, and read through the frequently asked questions about the latest version of the Latitude

More information

Learn to develop.net applications and master related technologies.

Learn to develop.net applications and master related technologies. Courses Software Development Learn to develop.net applications and master related technologies. Software Development with Design These courses offer a great combination of both.net programming using Visual

More information

Mono s New Profiler API

Mono s New Profiler API Mono s New Profiler API Motivation: Problems with the old API Impossible to reconfigure profiling options at runtime Some interactions between multiple profilers were unclear All or nothing instrumentations,

More information

.Net. Course Content ASP.NET

.Net. Course Content ASP.NET .Net Course Content ASP.NET INTRO TO WEB TECHNOLOGIES HTML ü Client side scripting langs ü lls Architecture ASP.NET INTRODUCTION ü What is ASP.NET ü Image Technique and code behind technique SERVER SIDE

More information

PERFVIEW..NET runtime performance and ETW event analysis tool

PERFVIEW..NET runtime performance and ETW event analysis tool PERFVIEW.NET runtime performance and ETW event analysis tool OVERVIEW Formerly from Vance Morrison (.NET performance architect) Open-source Performance-analysis tool Can be used to investigate CPU and

More information

Program Correctness and Efficiency. Chapter 2

Program Correctness and Efficiency. Chapter 2 Program Correctness and Efficiency Chapter 2 Chapter Objectives To understand the differences between the three categories of program errors To understand the effect of an uncaught exception and why you

More information

Exception handling features help you deal with any unexpected or exceptional situations that occur when a program is running

Exception handling features help you deal with any unexpected or exceptional situations that occur when a program is running Exception handling features help you deal with any unexpected or exceptional situations that occur when a program is running H T T P S : / / D O C S. M I C R O S O F T.C O M / E N - U S / D OT N E T/ C

More information

BBM 102 Introduction to Programming II Spring Exceptions

BBM 102 Introduction to Programming II Spring Exceptions BBM 102 Introduction to Programming II Spring 2018 Exceptions 1 Today What is an exception? What is exception handling? Keywords of exception handling try catch finally Throwing exceptions throw Custom

More information

Debugging and Profiling

Debugging and Profiling Debugging & Profiling Dr.-Ing. Thomas Springer M.Sc. Martin Weißbach Errors in Swift conditions can occur that require a deviation from the predefined control flow in order to handle e.g. a file does not

More information

Exception Handling Pearson Education, Inc. All rights reserved.

Exception Handling Pearson Education, Inc. All rights reserved. 1 16 Exception Handling 2 16.1 Introduction Exceptions Indicate problems that occur during a program s execution Occur infrequently Exception handling Can resolve exceptions Allow a program to continue

More information

14. Exception Handling

14. Exception Handling 14. Exception Handling 14.1 Intro to Exception Handling In a language without exception handling When an exception occurs, control goes to the operating system, where a message is displayed and the program

More information

Day 8. COMP1006/1406 Summer M. Jason Hinek Carleton University

Day 8. COMP1006/1406 Summer M. Jason Hinek Carleton University Day 8 COMP1006/1406 Summer 2016 M. Jason Hinek Carleton University today s agenda assignments Assignment 4 is out and due on Tuesday Bugs and Exception handling 2 Bugs... often use the word bug when there

More information

Team Developer 6.1. Configure the color-coding in the Tools Preferences dialog under the Outline tab.

Team Developer 6.1. Configure the color-coding in the Tools Preferences dialog under the Outline tab. Team Developer New Features : Team Developer 6.1 IDE Features: Team Developer 6.1 Color-coded Source Code The source code in the IDE is now color-coded. You can customize the colors of each of the following

More information

12/14/2016. Errors. Debugging and Error Handling. Run-Time Errors. Debugging in C# Debugging in C# (continued)

12/14/2016. Errors. Debugging and Error Handling. Run-Time Errors. Debugging in C# Debugging in C# (continued) Debugging and Error Handling Debugging methods available in the ID Error-handling techniques available in C# Errors Visual Studio IDE reports errors as soon as it is able to detect a problem Error message

More information

C++ for System Developers with Design Pattern

C++ for System Developers with Design Pattern C++ for System Developers with Design Pattern Introduction: This course introduces the C++ language for use on real time and embedded applications. The first part of the course focuses on the language

More information

IBM Tivoli Composite Application Manager for Microsoft Applications: Microsoft.NET Framework Agent Fix Pack 13.

IBM Tivoli Composite Application Manager for Microsoft Applications: Microsoft.NET Framework Agent Fix Pack 13. IBM Tivoli Composite Application Manager for Microsoft Applications: Microsoft.NET Framework Agent 6.3.1 Fix Pack 13 Reference IBM IBM Tivoli Composite Application Manager for Microsoft Applications:

More information

The course introduces many of the techniques and technologies employed by modern desktop and enterprise applications, including:

The course introduces many of the techniques and technologies employed by modern desktop and enterprise applications, including: Programming in C# OD20483B; On-Demand, Video-based Course Description This training course teaches developers the programming skills that are required for developers to create Windows applications using

More information

JS Event Loop, Promises, Async Await etc. Slava Kim

JS Event Loop, Promises, Async Await etc. Slava Kim JS Event Loop, Promises, Async Await etc Slava Kim Synchronous Happens consecutively, one after another Asynchronous Happens later at some point in time Parallelism vs Concurrency What are those????

More information

Microsoft.CerTkiller v by.SANDRA.65q

Microsoft.CerTkiller v by.SANDRA.65q Microsoft.CerTkiller.70-518.v2014-06-30.by.SANDRA.65q Number: 70-518 Passing Score: 700 Time Limit: 120 min File Version: 20.5 http://www.gratisexam.com/ Exam Code:70-518 Exam Name:Designing and Developing

More information

C# Programming Syllabus

C# Programming Syllabus C# Programming Syllabus Overview: Today C# is considered to be the most popular and modern Programming language. It belongs to "C" family and inherently has lots of things carried from C programming language.

More information

Course Description. Audience. Module Title : 20483B: Programming in C# Duration : 5 days. Course Outline :: 20483B ::

Course Description. Audience. Module Title : 20483B: Programming in C# Duration : 5 days. Course Outline :: 20483B :: Module Title : 20483B: Programming in C# Duration : 5 days Course Description This training course teaches developers the programming skills that are required for developers to create Windows applications

More information

BBM 102 Introduction to Programming II Spring 2017

BBM 102 Introduction to Programming II Spring 2017 BBM 102 Introduction to Programming II Spring 2017 Exceptions Instructors: Ayça Tarhan, Fuat Akal, Gönenç Ercan, Vahid Garousi Today What is an exception? What is exception handling? Keywords of exception

More information

Exceptions. Examples of code which shows the syntax and all that

Exceptions. Examples of code which shows the syntax and all that Exceptions Examples of code which shows the syntax and all that When a method might cause a checked exception So the main difference between checked and unchecked exceptions was that the compiler forces

More information

DE Developing Windows Applications with Microsoft Visual Studio 2010

DE Developing Windows Applications with Microsoft Visual Studio 2010 DE-10262 Developing Windows Applications with Microsoft Visual Studio 2010 Summary Duration 5 Days Audience Developers Level 200 Technology Visual Studio Delivery Method Instructor-led (Classroom) Training

More information

TEMPLATES AND EXCEPTION HANDLING

TEMPLATES AND EXCEPTION HANDLING CONTENTS: Function template Class template Exception handling Try-Catch-Throw paradigm Exception specification Terminate functions Unexcepted functions Uncaught exception UNIT-III TEMPLATES AND EXCEPTION

More information

CS193j, Stanford Handout #25. Exceptions

CS193j, Stanford Handout #25. Exceptions CS193j, Stanford Handout #25 Summer, 2003 Manu Kumar Exceptions Great Exceptations Here we'll cover the basic features and uses of exceptions. Pre-Exceptions A program has to encode two ideas -- how to

More information

Online Activity: Debugging and Error Handling

Online Activity: Debugging and Error Handling Online Activity: Debugging and Error Handling In this activity, you are to carry a number of exercises that introduce you to the world of debugging and error handling in ASP.NET using C#. Copy the application

More information

C# Threading. Hans-Wolfgang Loidl School of Mathematical and Computer Sciences, Heriot-Watt University, Edinburgh

C# Threading. Hans-Wolfgang Loidl School of Mathematical and Computer Sciences, Heriot-Watt University, Edinburgh C# Threading Hans-Wolfgang Loidl School of Mathematical and Computer Sciences, Heriot-Watt University, Edinburgh Semester 1 2018/19 0 Based on: "An Introduction to programming with

More information

Supplemental Handout: Exceptions CS 1070, Spring 2012 Thursday, 23 Feb 2012

Supplemental Handout: Exceptions CS 1070, Spring 2012 Thursday, 23 Feb 2012 Supplemental Handout: Exceptions CS 1070, Spring 2012 Thursday, 23 Feb 2012 1 Objective To understand why exceptions are useful and why Visual Basic has them To gain experience with exceptions and exception

More information

COSC 123 Computer Creativity. I/O Streams and Exceptions. Dr. Ramon Lawrence University of British Columbia Okanagan

COSC 123 Computer Creativity. I/O Streams and Exceptions. Dr. Ramon Lawrence University of British Columbia Okanagan COSC 123 Computer Creativity I/O Streams and Exceptions Dr. Ramon Lawrence University of British Columbia Okanagan ramon.lawrence@ubc.ca Objectives Explain the purpose of exceptions. Examine the try-catch-finally

More information

Exceptions. Why Exception Handling?

Exceptions. Why Exception Handling? Exceptions An exception is an object that stores information transmitted outside the normal return sequence. It is propagated back through calling stack until some function catches it. If no calling function

More information

Programming Languages Third Edition. Chapter 9 Control I Expressions and Statements

Programming Languages Third Edition. Chapter 9 Control I Expressions and Statements Programming Languages Third Edition Chapter 9 Control I Expressions and Statements Objectives Understand expressions Understand conditional statements and guards Understand loops and variation on WHILE

More information

Apex TG India Pvt. Ltd.

Apex TG India Pvt. Ltd. (Core C# Programming Constructs) Introduction of.net Framework 4.5 FEATURES OF DOTNET 4.5 CLR,CLS,CTS, MSIL COMPILER WITH TYPES ASSEMBLY WITH TYPES Basic Concepts DECISION CONSTRUCTS LOOPING SWITCH OPERATOR

More information

ClearSpeed Visual Profiler

ClearSpeed Visual Profiler ClearSpeed Visual Profiler Copyright 2007 ClearSpeed Technology plc. All rights reserved. 12 November 2007 www.clearspeed.com 1 Profiling Application Code Why use a profiler? Program analysis tools are

More information

Reactive programming, WinForms,.NET. Björn Dagerman

Reactive programming, WinForms,.NET. Björn Dagerman Reactive programming, WinForms,.NET Björn Dagerman Motivation - Troublesome for many students previous years - Most student solutions we see are imperative - Useful techniques when working with GUI s,

More information

VISUAL PROGRAMMING_IT0309 Semester Number 05. G.Sujatha & R.Vijayalakshmi Assistant professor(o.g) SRM University, Kattankulathur

VISUAL PROGRAMMING_IT0309 Semester Number 05. G.Sujatha & R.Vijayalakshmi Assistant professor(o.g) SRM University, Kattankulathur School of Computing, 12/26/2012 1 VISUAL PROGRAMMING_IT0309 Semester Number 05 G.Sujatha & R.Vijayalakshmi Assistant professor(o.g) SRM University, Kattankulathur UNIT 1 School of Computing, Department

More information

Dot Net Framework 4.0: Advanced Microsoft C#.NET Web Development

Dot Net Framework 4.0: Advanced Microsoft C#.NET Web Development Dot Net Framework 4.0: Advanced Microsoft C#.NET Web Development Duration: 90 Hours What you will learn This course is your first step towards success as a Dot Net professional, designed to give you a

More information

Creating and Running Your First C# Program

Creating and Running Your First C# Program Creating and Running Your First C# Program : http://eembdersler.wordpress.com Choose the EEE-425Programming Languages (Fall) Textbook reading schedule Pdf lecture notes Updated class syllabus Midterm and

More information

Modeling the.net CLR Exception Handling Mechanism for a Mathematical Analysis

Modeling the.net CLR Exception Handling Mechanism for a Mathematical Analysis Vol. 2, No. 2, March Aprile 2006 Modeling the.net CLR Exception Handling Mechanism for a Mathematical Analysis Nicu G. Fruja, Computer Science Department, ETH Zürich, Switzerland Egon Börger, Dipartimento

More information

EEE-425 Programming Languages (2013) 1

EEE-425 Programming Languages (2013) 1 Creating and Running Your First C# Program : http://eembdersler.wordpress.com Choose the EEE-425Programming Languages (Fall) Textbook reading schedule Pdf lecture notes Updated class syllabus Midterm and

More information

Introduction. Exceptions: An OO Way for Handling Errors. Common Runtime Errors. Error Handling. Without Error Handling Example 1

Introduction. Exceptions: An OO Way for Handling Errors. Common Runtime Errors. Error Handling. Without Error Handling Example 1 Exceptions: An OO Way for Handling Errors Introduction Rarely does a program runs successfully at its very first attempt. It is common to make mistakes while developing as well as typing a program. Such

More information

Data Structures. 02 Exception Handling

Data Structures. 02 Exception Handling David Drohan Data Structures 02 Exception Handling JAVA: An Introduction to Problem Solving & Programming, 6 th Ed. By Walter Savitch ISBN 0132162709 2012 Pearson Education, Inc., Upper Saddle River, NJ.

More information

AMD CodeXL 1.3 GA Release Notes

AMD CodeXL 1.3 GA Release Notes AMD CodeXL 1.3 GA Release Notes Thank you for using CodeXL. We appreciate any feedback you have! Please use the CodeXL Forum to provide your feedback. You can also check out the Getting Started guide on

More information

COMP6771 Advanced C++ Programming

COMP6771 Advanced C++ Programming 1.... COMP6771 Advanced C++ Programming Week 5 Part One: Exception Handling 2016 www.cse.unsw.edu.au/ cs6771 2.... Memory Management & Exception Handling.1 Part I: Exception Handling Exception objects

More information

Microsoft.NET Programming (C#, ASP.NET,ADO.NET, VB.NET, Crystal Report, Sql Server) Goal: Make the learner proficient in the usage of MS Technologies

Microsoft.NET Programming (C#, ASP.NET,ADO.NET, VB.NET, Crystal Report, Sql Server) Goal: Make the learner proficient in the usage of MS Technologies Microsoft.NET Programming (C#, ASP.NET,ADO.NET, VB.NET, Crystal Report, Sql Server) Goal: Make the learner proficient in the usage of MS Technologies for web applications development using ASP.NET, XML,

More information

ASYNCHRONOUS PROGRAMMING IN C# 5 WITHOUT USE OF MULTIPLE THREADS

ASYNCHRONOUS PROGRAMMING IN C# 5 WITHOUT USE OF MULTIPLE THREADS ASYNCHRONOUS PROGRAMMING IN C# 5 WITHOUT USE OF MULTIPLE THREADS Aleš Keprt Department of Informatics, Moravian College Olomouc ales.keprt@mvso.cz ABSTRACT: Asynchrony is a situation when multiple things

More information

Exceptions. Text: Chapter19, Big C++

Exceptions. Text: Chapter19, Big C++ Exceptions pm_jat@daiict.ac.in Text: Chapter19, Big C++ What are exceptions? In functions/methods, you write a sequence of statements to perform some task, and statements are executed in that sequence

More information

Exception Handling: Control. Exception handling is the control of error conditions or other unusual events during the execution of a program.

Exception Handling: Control. Exception handling is the control of error conditions or other unusual events during the execution of a program. Exception Handling: Control Exception handling is the control of error conditions or other unusual events during the execution of a program. 1 In a language without exception handling: When an exception

More information

EXCEPTION-HANDLING INTRIVIEW QUESTIONS

EXCEPTION-HANDLING INTRIVIEW QUESTIONS EXCEPTION-HANDLING INTRIVIEW QUESTIONS Q1.What is an Exception? Ans.An unwanted, unexpected event that disturbs normal flow of the program is called Exception.Example: FileNotFondException. Q2.What is

More information

Formal Methods for Java

Formal Methods for Java Formal Methods for Java Lecture 17: Advanced Key Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg December 21, 2011 Jochen Hoenicke (Software Engineering) Formal Methods for Java

More information

Developing Windows Applications with Microsoft Visual Studio 2010

Developing Windows Applications with Microsoft Visual Studio 2010 Developing Windows Applications with Microsoft Visual Studio 2010 Course 10262A: Five days; Instructor-Led Course Description: In this course, experienced developers who know the basics of Windows Forms

More information