Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
27 слайдов
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
448.31 kB
Просмотров:
62
Скачиваний:
0
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд![Exception Handling Handling](/documents_6/57a1e0d4997d117415af2bd8710ff12e/img0.jpg)
Содержание слайда: Exception Handling
Handling Errors during the Program Execution
№2 слайд![Agenda What are Exceptions?](/documents_6/57a1e0d4997d117415af2bd8710ff12e/img1.jpg)
Содержание слайда: Agenda
What are Exceptions?
Handling Exceptions
The System.Exception Class
Types of Exceptions and their Hierarchy
Raising (Throwing) Exceptions
Best Practices
№3 слайд![What are Exceptions? The](/documents_6/57a1e0d4997d117415af2bd8710ff12e/img2.jpg)
Содержание слайда: What are Exceptions?
The exceptions in .NET Framework are classic implementation of the OOP exception model
Deliver powerful mechanism for centralized handling of errors and unusual events
Substitute procedure-oriented approach,
in which each function returns error code
Simplify code construction and maintenance
Allow the problematic situations to be
processed at multiple levels
№4 слайд![Handling Exceptions In C the](/documents_6/57a1e0d4997d117415af2bd8710ff12e/img3.jpg)
Содержание слайда: Handling Exceptions
In C# the exceptions can be handled by the try-catch-finally construction
catch blocks can be used multiple times to process different exception types
№5 слайд![Handling Exceptions Example](/documents_6/57a1e0d4997d117415af2bd8710ff12e/img4.jpg)
Содержание слайда: Handling Exceptions – Example
№6 слайд![The System.Exception Class](/documents_6/57a1e0d4997d117415af2bd8710ff12e/img5.jpg)
Содержание слайда: The System.Exception Class
Exception is a base class for all exceptions
Important properties:
Message – user-oriented message about error
Source – name of an error source (application or object)
InnerException – inner exception (if called from other)
StackTrace – call stack to the point of exception call
TargetSite – method name which raised an exception
HelpLink – URL-address to information about exception
Data – dictionary with additional information with exception (IDictionary)
№7 слайд![Exception Properties Example](/documents_6/57a1e0d4997d117415af2bd8710ff12e/img6.jpg)
Содержание слайда: Exception Properties – Example
№8 слайд![Exception Properties The](/documents_6/57a1e0d4997d117415af2bd8710ff12e/img7.jpg)
Содержание слайда: Exception Properties
The Message property gives brief description of the problem
The StackTrace property is extremely useful when identifying the reason caused the exception
№9 слайд![Exception Properties File](/documents_6/57a1e0d4997d117415af2bd8710ff12e/img8.jpg)
Содержание слайда: Exception Properties (2)
File names and line numbers are accessible only if the compilation was in Debug mode
When compiled in Release mode, the information in the property StackTrace is quite different:
№10 слайд![Exception Hierarchy](/documents_6/57a1e0d4997d117415af2bd8710ff12e/img9.jpg)
Содержание слайда: Exception Hierarchy
Exceptions in .NET Framework are organized in a hierarchy
№11 слайд![Types of Exceptions .NET](/documents_6/57a1e0d4997d117415af2bd8710ff12e/img10.jpg)
Содержание слайда: Types of Exceptions
.NET exceptions inherit from System.Exception
The system exceptions inherit from System.SystemException, e.g.
System.ArgumentException
System.NullReferenceException
System.OutOfMemoryException
System.StackOverflowException
User-defined exceptions should inherit from System.ApplicationException
№12 слайд![Handling Exceptions When](/documents_6/57a1e0d4997d117415af2bd8710ff12e/img11.jpg)
Содержание слайда: Handling Exceptions
When catching an exception of a particular class, all its inheritors (child exceptions) are caught too
Example:
Handles ArithmeticException and its descendants DivideByZeroException and OverflowException
№13 слайд![Find the Mistake!](/documents_6/57a1e0d4997d117415af2bd8710ff12e/img12.jpg)
Содержание слайда: Find the Mistake!
№14 слайд![Handling All Exceptions All](/documents_6/57a1e0d4997d117415af2bd8710ff12e/img13.jpg)
Содержание слайда: Handling All Exceptions
All exceptions thrown by .NET managed code inherit the System.Exception exception
Unmanaged code can throw other exceptions
For handling all exceptions (even unmanaged) use the construction:
№15 слайд![Throwing Exceptions](/documents_6/57a1e0d4997d117415af2bd8710ff12e/img14.jpg)
Содержание слайда: Throwing Exceptions
Exceptions are thrown (raised) by throw keyword in C#
Used to notify the calling code in case of error or unusual situation
When an exception is thrown:
The program execution stops
The exception travels over the stack until a suitable catch block is reached to handle it
Unhandled exceptions display
error message
№16 слайд![How Exceptions Work?](/documents_6/57a1e0d4997d117415af2bd8710ff12e/img15.jpg)
Содержание слайда: How Exceptions Work?
№17 слайд![Using throw Keyword Throwing](/documents_6/57a1e0d4997d117415af2bd8710ff12e/img16.jpg)
Содержание слайда: Using throw Keyword
Throwing an exception with an error message:
Exceptions can accept message and cause:
Note: if the original exception is not passed the initial cause of the exception is lost
№18 слайд![Re-Throwing Exceptions Caught](/documents_6/57a1e0d4997d117415af2bd8710ff12e/img17.jpg)
Содержание слайда: Re-Throwing Exceptions
Caught exceptions can be re-thrown again:
№19 слайд![Throwing Exceptions Example](/documents_6/57a1e0d4997d117415af2bd8710ff12e/img18.jpg)
Содержание слайда: Throwing Exceptions – Example
№20 слайд![Choosing the Exception Type](/documents_6/57a1e0d4997d117415af2bd8710ff12e/img19.jpg)
Содержание слайда: Choosing the Exception Type
When an invalid parameter is passed to a method:
ArgumentException, ArgumentNullException, ArgumentOutOfRangeException
When requested operation is not supported
NotSupportedException
When a method is still not implemented
NotImplementedException
If no suitable standard exception class is available
Create own exception class (inherit Exception)
№21 слайд![The try-finally Statement The](/documents_6/57a1e0d4997d117415af2bd8710ff12e/img20.jpg)
Содержание слайда: The try-finally Statement
The statement:
Ensures execution of given block in all cases
When exception is raised or not in the try block
Used for execution of cleaning-up code, e.g. releasing resources
№22 слайд![try-finally Example](/documents_6/57a1e0d4997d117415af2bd8710ff12e/img21.jpg)
Содержание слайда: try-finally – Example
№23 слайд![Exceptions Best Practices](/documents_6/57a1e0d4997d117415af2bd8710ff12e/img22.jpg)
Содержание слайда: Exceptions – Best Practices
catch blocks should begin with the exceptions lowest in the hierarchy
And continue with the more general exceptions
Otherwise a compilation error will occur
Each catch block should handle only these exceptions which it expects
If a method is not competent to handle an exception, it should be left unhandled
Handling all exceptions disregarding their type is popular bad practice (anti-pattern)!
№24 слайд![Exceptions Best Practices](/documents_6/57a1e0d4997d117415af2bd8710ff12e/img23.jpg)
Содержание слайда: Exceptions – Best Practices (2)
When raising an exception always pass to the constructor good explanation message
When throwing an exception always pass a good description of the problem
Exception message should explain what causes the problem and how to solve it
Good: "Size should be integer in range [1…15]"
Good: "Invalid state. First call Initialize()"
Bad: "Unexpected error"
Bad: "Invalid argument"
№25 слайд![Exceptions Best Practices](/documents_6/57a1e0d4997d117415af2bd8710ff12e/img24.jpg)
Содержание слайда: Exceptions – Best Practices (3)
Exceptions can decrease the application performance
Throw exceptions only in situations which are really exceptional and should be handled
Do not throw exceptions in the normal program control flow (e.g. for invalid user input)
CLR could throw exceptions at any time with no way to predict them
E.g. System.OutOfMemoryException
№26 слайд![Summary Exceptions provide](/documents_6/57a1e0d4997d117415af2bd8710ff12e/img25.jpg)
Содержание слайда: Summary
Exceptions provide flexible error handling mechanism in .NET Framework
Allow errors to be handled at multiple levels
Each exception handler processes only errors of particular type (and its child types)
Other types of errors are processed by some other handlers later
Unhandled exceptions cause error messages
Try-finally ensures given code block is always executed (even when an exception is thrown)
№27 слайд![Exceptions Handling](/documents_6/57a1e0d4997d117415af2bd8710ff12e/img26.jpg)
Содержание слайда: Exceptions Handling