|   Question 1   |     You have created the following code segment:    Try     ' Write code to allocate some resources Finally     ' Write code to Dispose all allocated resources End Try    Which of the following will result from compiling this code, assuming all other code for your form works properly?    -  
 A. The code will generate an error because it lacks a  Catch  block.     -  
 B. The code will generate an error because it lacks a  Throw  statement.     -  
 C. The code will generate an error because the  Finally  block does not follow the  End Try  statement.     -  
 D. The code will compile without an error.        |  
  |   A1:   |     Answer D is correct. The code will compile properly because it includes both a  Try  and a  Finally  block. Answer A is incorrect because a  Try  block must have either one or more  Catch  blocks or a  Finally  block (or both). Answer B is incorrect because the  Throw  statement is used to explicitly raise an error and is not required. Answer C is incorrect because the  Finally  block must follow the  Try  and  Catch  blocks but remain within the defined  Try  block terminated by the  End Try  statement.    |  
  |   Question 2   |     You have created a code segment that includes several  MessageBox  statements that detail the flow of its execution. The program has the following code:    Try     Dim num As Integer = 100     dim den as Integer  = 0     MessageBox.Show("Message1")     Try         Dim res As Integer = num / den         MessageBox.Show("Message2")     Catch ae As ArithmeticException         MessageBox.Show("Message3")     End Try Catch dbze As DivideByZeroException     MessageBox.Show("Message4") Finally     MessageBox.Show("Message5") End Try   Which of the following is the order of messages that are generated when you run this code?    -  
 A.  Message1      Message2      Message3      Message4      Message5      -  
 B.  Message1      Message3      Message5      -  
 C.  Message1      Message4      Message5      -  
 D.  Message1      Message2      Message4      Message5         |  
  |   A2:   |     Answer B is correct. The code will generate  Message1  before entering the  Try  block, the attempted division by zero encountered by the  Catch as ArithmeticException  block will generate  Message3  , and the  Finally  block of code will generate  Message5  . Answers A and C are incorrect because they assume that all  Catch  blocks will be evaluated, rather than only the first matching exception  Catch  block. Answer D is incorrect because it fails to catch the first matching exception and instead includes the generation of  Message2  , which never occurs due to the raising of the division-by-zero error just before, and the generation of  Message4  , which never occurs because it falls after another matching  Catch  statement.    |  
  |   Question 3   |     You are designing a complex membership information form and want to provide a user -friendly interface while also notifying users when invalid information has been input. Which control should you use to display information about validation failures?    -  
 A. ToolTip     -  
 B. Label     -  
 C. LinkLabel     -  
 D. ErrorProvider        |  
  |   A3:   |     Answer D is correct. The ErrorProvider component provides a user-friendly notification for field validation, showing a small warning icon and displaying a ToolTip detailing the validation failure when the cursor is hovered over this icon. Answers A, B, and C are all incorrect.    |  
  |   Question 4   |     How should you arrange  Catch  blocks?    -  
 A. Only one  Catch  block for each  Try  code block, located after the  Try  code block but before the  End Try  statement.     -  
 B. Several  Catch  blocks within one  Try  code block, arranged starting with  Exception  and ending with the most specific exception.     -  
 C. Several  Catch  blocks within one  Try  code block, arranged starting with the most specific exception and ending with  Exception  .     -  
 D.  Catch  blocks should be used only when a  Finally  block is not used.        |  
  |   A4:   |     Answer C is correct. One or more  Catch  blocks may be used with a  Try  code block, arranged in order from the most specific exception to the most general because the first match will be used for evaluation. Answer A is incorrect because you may associate more than one  Catch  block with a  Try  block. Answer B is incorrect because it specifies a reversed order, starting with  Exception  . Nothing would ever be evaluated past the first  Catch  block, because  Exception  includes all other more-specific exceptions. Answer D is incorrect because  Catch  and  Finally  blocks may both be used if desired.    |  
  |   Question 5   |     You have designed a logon form with two TextBox controls named txtUserName and txtpassword. You want to ensure that the user can only enter lowercase characters in the controls. Which of the following solutions will fulfill this requirement using the simplest method?    -  
 A. Program the  KeyPress  event of the form to convert uppercase letters to lowercase letters .     -  
 B. Create a single event handler that is attached to the  KeyPress  event of the form. Program this event handler to convert the uppercase letters to lowercase.     -  
 C. Set the  CharacterCasing  property of the controls to Lower.     -  
 D. Use the  CharacterCasing  method of the controls to convert the letters to lowercase.        |  
  |   A5:   |     Answer C is correct. The simplest method to accomplish this requirement is to set the  CharacterCasing  property of the two controllers to Lower so that all input characters will be forced to lowercase. Answers A and B could be used to accomplish this task, but this would not be the simplest solution available. Answer d is incorrect because there is no  CharacterCasing  method for TextBox controls.  CharacterCasing  is a property that accepts values of Normal, Lower, or Upper.    |  
  |   Question 6   |     Which of the following events will fire when the Insert key is pressed? [Select all correct answers.]    -  
 A.  KeyDown      -  
 B.  KeyPress      -  
 C.  KeyUp         |  
  |   A6:   |     Answers A and C are correct. When control and cursor navigation keys are pressed, only the  KeyDown  and  KeyUp  events are fired . Answer B is incorrect because the  KeyPress  event occurs only when a keyboard key generates a character.    |  
  |   Question 7   |     You have a TextBox control and a help button that the user can click to get help on allowable values. You validate the data entered by the user in the TextBox control, and if the user enters an invalid value you set the focus back in the control using the  Cancel  property of  CancelEventArgs  . A user reports that once he enters invalid data in the text box, he cannot click the help button. What should you do to correct the problem?    -  
 A. Set the  CausesValidation  property of the text box to False     -  
 B. Set the  CausesValidation  property of the text box to True     -  
 C. Set the  CausesValidation  property of the help button to False     -  
 D. Set the  CausesValidation  property of the help button to True        |  
  |   A7:   |     Answer C is correct. By setting the  CausesValidation  property of the help button to False, you allow it to act without first firing the  Validating  event in the text box, which would return the focus to the text box. Answers A and B are incorrect because changing the  CausesValidation  property of the text box will not affect the ability of the help button to be selected. Answer D is incorrect because setting the  CausesValidation  property of the help button to True (the default value) would result in the same problem experienced by the user.    |  
  |   Question 8   |     Your program contains the following code (line numbers are for reference only):    1 2  Try 3 4  Catch ex As Exception 5 6  Finally 7 8  End Try    At which lines could you insert a  Throw  statement to explicitly raise an exception? [Select all correct answers.]    -  
 A. Line 1     -  
 B. Line 3     -  
 C. Line 5     -  
 D. Line 7        |  
  |   A8:   |     Answers A, B, and C are correct. You can use a  Throw  block to raise a custom error whenever there isn't an unhandled error already pending. You should not use the  Throw  statement within the  Finally  block to explicitly raise a custom error because it is possible to have unhandled errors already when in the  Finally  block of code. Therefore, answer D is incorrect.    |  
  |   Question 9   |     You have an order-entry form. When an exception occurs, you want to get information about the sequence of method calls and the line number in the method where the exception occurs. Which property of your custom exception class that derives from the  ApplicationException  class should be used?    -  
 A.  HelpLink      -  
 B.  InnerException      -  
 C.  Message      -  
 D.  StackTrace         |  
  |   A9:   |     Answer D is correct. The  StackTrace  property of the  Exception  class provides information about the method call sequence and the line number where the exception occurred. Answer A is incorrect because the  HelpLink  property specifies the URL for an associated help file. Answer B is incorrect because the  InnerException  property details an exception associated with the raised exception. Answer C is incorrect because the  Message  property is used to explain the error or offer possible corrective actions.    |  
  |   Question 10   |     You want to log events generated by exception-handling code within your application, which will run on standalone systems running Windows 98 and Windows 2000. Which of the four methods of logging is the best single solution able to fulfill this requirement?    -  
 A. Using the Windows Event Log     -  
 B. Using custom log files     -  
 C. Using a database such as SQL Server 2000     -  
 D. Using email notifications        |  
  |   A10:   |     Answer B is correct. The best solution in this scenario is to use a local custom log file. Answer A is incorrect because some of the systems are running Windows 98, which does not support logging using the Event Log. Answers C and D are incorrect because standalone systems will not have network access to allow for the connection to a databases or the transmission of SMTP messages.    |