<

Question 45


70-486 Skills Measured >> 4.2 Design an exception handling strategy >>
You are developing an online shopping web application.
  • A user is not required to provide an email address. If a user enters an email address, it must be verified to be a valid email address.
  • Information about the first product on the product page must fade out over time to encourage the user to continue browsing the catalog.
  • Administrators must be able to edit information about existing customers.
  • Administrators also must be able to specify a default product on the product page.
General:
  • The web store application is in a load-balanced web farm. The load balancer is not configured to use server affinity.
  • The web store application is an ASP.NET MVC application written in Visual Studio 2012.
Products:
  • The value of the productId property must always be greater than 0.
  • The Products page for mobile devices must display to mobile users.
  • The Products page for desktop devices must display to desktop users.
Storage:
  • The data must be stored in a serialized XML data format.
  • Serialized objects must be schema-independent.
Exception handling:
  • Exceptions originating from IIS must display a page with support contact information.
  • Some page links expire, and users who access these links encounter 404 errors.
  • Exceptions must be logged by using the WriteLog method of the Utility class.
Browser and device support:
  • The application must support image format conversions from .bmp to .jpeg for mobile devices.
  • The application must support image format conversions from .bmp to .png for desktop devices.
Application Struction
Customer.cs | Product.cs | Web.config
Customer.cs
Product.cs
Web.config

Background

You are developing an online shopping web application.

Business Requirements

  • A user is not required to provide an email address. If a user enters an email address, it must be verified to be a valid email address.
  • Information about the first product on the product page must fade out over time to encourage the user to continue browsing the catalog.
  • Administrators must be able to edit information about existing customers.
  • Administrators also must be able to specify a default product on the product page.

Technical Requirements

General:
  • The web store application is in a load-balanced web farm. The load balancer is not configured to use server affinity.
  • The web store application is an ASP.NET MVC application written in Visual Studio 2012.
Products:
  • The value of the productId property must always be greater than 0.
  • The Products page for mobile devices must display to mobile users.
  • The Products page for desktop devices must display to desktop users.
Storage:
  • The data must be stored in a serialized XML data format.
  • Serialized objects must be schema-independent.
Exception handling:
  • Exceptions originating from IIS must display a page with support contact information.
  • Some page links expire, and users who access these links encounter 404 errors.
  • Exceptions must be logged by using the WriteLog method of the Utility class.
Browser and device support:
  • The application must support image format conversions from .bmp to .jpeg for mobile devices.
  • The application must support image format conversions from .bmp to .png for desktop devices.
Application Struction
Customer.cs | Product.cs | Web.config
Customer.cs
Product.cs
Web.config

Question

Multiple Choice

You need to add a method to the ProductController class to meet the exception handling requirements for logging. Which code segment should you use?

  • A. protected override void OnException(ExceptionContext filterContext)
    {
    Utility.WriteLog(filterContext.Exception);

    if (filterContext.HttpContext.IsCustomErrorEnabled)
    {
    filterContext.ExceptionHandled = true;
    this.View("Error").ExecuteResult(this.ControllerContext);
    }
    }
  • B. protected override void OnException(ExceptionContext filterContext)
    {
    Utility.WriteLog(filterContext.Exception);

    if (System.Diagnostics.Debugger.IsAttached)
    {
    filterContext.ExceptionHandled = true;
    this.View("Error").ExecuteResult(this.ControllerContext);
    }
    }
  • C. protected override void OnException(ExceptionContext filterContext)
    {
    if (!System.Diagnostics.Debugger.IsAttached)
    {
    Utility.WriteLog(filterContext.Exception);
    filterContext.ExceptionHandled = true;
    this.View("Error").ExecuteResult(this.ControllerContext);
    }
    }
  • D. protected override void OnException(ExceptionContext filterContext)
    {
    if (!System.Diagnostics.Debugger.IsLogging)
    {
    Utility.WriteLog(filterContext.Exception);
    filterContext.ExceptionHandled = true;
    this.View("Error").ExecuteResult(this.ControllerContext);
    }
    }

Answer:

A