modern javascript develop and design instructor’s notes chapter 12 – error management modern...

15
Modern JavaScript Develop And Design Instructor’s Notes Chapter 12 – Error Management Modern JavaScript Design And Devel Copyright © 2012 by Larry Ullm

Upload: brook-wilkerson

Post on 18-Jan-2016

228 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Modern JavaScript Develop And Design Instructor’s Notes Chapter 12 – Error Management Modern JavaScript Design And Develop Copyright © 2012 by Larry Ullman

Modern JavaScriptDevelop And Design

Instructor’s NotesChapter 12 – Error Management

Modern JavaScript Design And DevelopCopyright © 2012 by Larry Ullman

Page 2: Modern JavaScript Develop And Design Instructor’s Notes Chapter 12 – Error Management Modern JavaScript Design And Develop Copyright © 2012 by Larry Ullman

Objectives

• Perform exception handling using try…catch

• Add a finally clause to a try statement

• Throw exceptions• Create and use assertions• Implement unit testing

Page 3: Modern JavaScript Develop And Design Instructor’s Notes Chapter 12 – Error Management Modern JavaScript Design And Develop Copyright © 2012 by Larry Ullman

Catching Errors

try { // Lots of code.} catch (error) { // Use error.}

try { doThis(); doThat();} catch (error) { // Use the error somehow.}

Page 4: Modern JavaScript Develop And Design Instructor’s Notes Chapter 12 – Error Management Modern JavaScript Design And Develop Copyright © 2012 by Larry Ullman

The Error Object

try { // Lots of code.} catch (ex) { console.log(error.name + ': ' + error.message + '\n');}

Page 5: Modern JavaScript Develop And Design Instructor’s Notes Chapter 12 – Error Management Modern JavaScript Design And Develop Copyright © 2012 by Larry Ullman

Finally…

try { // Lots of code.} catch (ex) { // Use ex.} finally { // Wrap up.}

Page 6: Modern JavaScript Develop And Design Instructor’s Notes Chapter 12 – Error Management Modern JavaScript Design And Develop Copyright © 2012 by Larry Ullman

Throwing Exceptions

throw something;

throw 2; // Assumes 2 is meaningful in the catch.

throw 'No such HTML element!';

throw new Error('No such HTML element!');

Page 7: Modern JavaScript Develop And Design Instructor’s Notes Chapter 12 – Error Management Modern JavaScript Design And Develop Copyright © 2012 by Larry Ullman

Throwing Exceptions

function $(id) { 'use strict'; if (typeof id != 'undefined') { return document.getElementById(id); } else { throw Error('The function requires one argument.'); }}

Page 8: Modern JavaScript Develop And Design Instructor’s Notes Chapter 12 – Error Management Modern JavaScript Design And Develop Copyright © 2012 by Larry Ullman

Using Assertions

function assert(expression, message) { if (!expression) throw {name: 'Assertion Exception', message: message};}

Page 9: Modern JavaScript Develop And Design Instructor’s Notes Chapter 12 – Error Management Modern JavaScript Design And Develop Copyright © 2012 by Larry Ullman

Unit Testing

• Define tests to confirm specific bits of code work as intended

• Tests should be atomic• Add tests as the project evolves

Page 10: Modern JavaScript Develop And Design Instructor’s Notes Chapter 12 – Error Management Modern JavaScript Design And Develop Copyright © 2012 by Larry Ullman

Using jsUnity

1. Include the framework2. Define tests3. Run tests4. Log results5. Setup and teardown, as needed

Page 11: Modern JavaScript Develop And Design Instructor’s Notes Chapter 12 – Error Management Modern JavaScript Design And Develop Copyright © 2012 by Larry Ullman

Including the Framework

<script src="js/jsunity-0.6.js"></script>

Page 12: Modern JavaScript Develop And Design Instructor’s Notes Chapter 12 – Error Management Modern JavaScript Design And Develop Copyright © 2012 by Larry Ullman

Defining Tests

var myTests = function() { function testThis() { }};

Page 13: Modern JavaScript Develop And Design Instructor’s Notes Chapter 12 – Error Management Modern JavaScript Design And Develop Copyright © 2012 by Larry Ullman

Assertion Methods

• assertTrue()• assertFalse()• assertIdentical()• assertNotIdentical

()• assertEqual()• assertNotEqual()

• assertTypeOf()• assertNotTypeOf()• assertInstanceOf()• assertNull()• assertNotNull()• assertUndefined()

jsUnity.assertions.assertNotUndefined(myVar);jsUnity.assertions.assertTypeOf('number', radius);jsUnity.assertions.assertNotNaN(volume);

Page 14: Modern JavaScript Develop And Design Instructor’s Notes Chapter 12 – Error Management Modern JavaScript Design And Develop Copyright © 2012 by Larry Ullman

Running Tests

var results = jsUnity.run(myTests);// results.total// results.passed// results.failed// results.duration

Page 15: Modern JavaScript Develop And Design Instructor’s Notes Chapter 12 – Error Management Modern JavaScript Design And Develop Copyright © 2012 by Larry Ullman

Logging Results

jsUnity.log = function(message) { // Do something with message.};