2010-01-31 2 views

ответ

2

Я бы начал с приобретения книг (или учебных пособий), соответствующих вашему учебному курсу. Но имейте в виду, что часто возникает разрыв между возможностью создания приложения и возможностью создания «отполированного» приложения. Вы не получите этого из книг; вы получаете это от создания множества приложений!

Вот достойное место, чтобы начать (и бесплатно): Visual Basic Developer Center

С этого сайта: Learning Visual Basic from the Ground Up

После того, как вы познакомитесь с основами, взгляните на windowsclient.net

5

Это не тривиальная задача создания полированного приложения. Это требует много времени и опыта.

Эффективная обработка ошибок в .NET может выполняться обработкой «необработанных» потоков и исключений домена.

Следующий пример является примером приложения, которое это делает. Вы захотите получить свой собственный экземпляр формы.

Покупка хорошей книги по этому вопросу также будет эффективным способом обучения тому, как это сделать.


Module modMain 

    Public Sub Log(ByVal ex As Exception) 

     Try 

      Dim logDirectory As String = IO.Path.Combine(Application.StartupPath, "Log") 
      Dim logName As String = DateTime.Now.ToString("yyyyMMdd") & ".txt" 
      Dim fullName As String = IO.Path.Combine(logDirectory, logName) 

      If Not IO.Directory.Exists(logDirectory) Then 
       IO.Directory.CreateDirectory(logDirectory) 
      End If 

      Dim errorString As String = DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss") & " >> " & _ 
             ex.Message & Environment.NewLine & _ 
             ex.StackTrace & Environment.NewLine 

      IO.File.AppendAllText(fullName, errorString) 

     Catch ignore As Exception 

     End Try 

    End Sub 

    Public Sub ThreadExceptionHandler(ByVal sender As Object, ByVal e As Threading.ThreadExceptionEventArgs) 
     Log(e.Exception) 
    End Sub 

    Public Sub DomainExceptionHandler(ByVal sender As Object, ByVal e As System.UnhandledExceptionEventArgs) 
     Dim ex As Exception = CType(e.ExceptionObject, Exception) 
     Log(ex) 
    End Sub 

    Public Sub Main() 

     AddHandler Application.ThreadException, AddressOf ThreadExceptionHandler 
     Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException) 

     AddHandler AppDomain.CurrentDomain.UnhandledException, AddressOf DomainExceptionHandler 

     Try 
      Application.Run(New Form) 
     Catch ex As Exception 
      Log(ex) 
     Finally 
      RemoveHandler Application.ThreadException, AddressOf ThreadExceptionHandler 
      RemoveHandler AppDomain.CurrentDomain.UnhandledException, AddressOf DomainExceptionHandler 
     End Try 

    End Sub 

End Module 
+0

+1 Вот ссылка на пример кода в документации MSDN http://msdn.microsoft.com/en-us/library/system.windows.forms.application.threadexception.aspx – MarkJ

Смежные вопросы