Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: DSREY en 7 Agosto 2017, 05:15 am



Título: Instrucciones para Excepciones
Publicado por: DSREY en 7 Agosto 2017, 05:15 am
hola, estuve googleando buscando ejemplos de como utilizar ciertas excepciones pero solo encuentro sintaxys y quisiera algún ejemplo sencillo de como se utiliza cada uno de estos terminos
aclaro que quiero saber como se usan estos terminos dentro del manejo de exepciones (try...catch) para visual basic en aplicacion consola

termnos:

1) WHEN
2) NUMBER
3) DESCRIPTION
4) ON ERROR
5) THROW
6) EXIT TRY


Título: Re: Instrucciones para Excepciones
Publicado por: Eleкtro en 7 Agosto 2017, 12:14 pm
Las preguntas sobre Visual Basic.NET debes publicarlas en el foro de .NET, no en el de Visual Basic 6.

Por favor, aclara si tu pregunta es sobre VB6 o VB.NET, ya que has preguntado por keywords o palabras clave de ambos lenguajes... y otros términos que diréctamente no existen ("NUMBER", "DESCRIPTION" ...¿?)



Todo lo que necesitas saber con ejemplos incluidos está en la documentación oficial de Microsoft...

  • How to: Catch an Exception in Visual Basic | MSDN (https://msdn.microsoft.com/en-us/library/ys1b32h3(v=vs.100).aspx)
  • Try...Catch...Finally Statement | docs.microsoft.com (https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/statements/try-catch-finally-statement)
  • Try...Catch...Finally Statement | MSDN (https://msdn.microsoft.com/en-us/library/fk6t46tz%28VS.80%29.aspx)
     
  • How to: Throw an Exception in Visual Basic | MSDN (https://msdn.microsoft.com/en-us/library/z7w9ff54(v=vs.100).aspx)
  • Throw Statement | docs.microsoft.com (https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/statements/throw-statement)
+
  • Marshal.ThrowExceptionForHR() Method| MSDN (https://msdn.microsoft.com/en-us/library/system.runtime.interopservices.marshal.throwexceptionforhr(v=vs.110).aspx)

PD: La sentencia On Error Go To / Resume Next es de VB6 antiguo. Es algo obsoleto, un modo desestructurado de controlar excepciones que ni por asomo se te debería pasar por la cabeza aplicarlo en la programación de un código VB.NET.



Aunque ahí arriba tienes muchos ejemplos de uso, de todas formas he escrito este mini ejemplo por si te sirve:

Código
  1. Dim filepaths As String() = {
  2.    "C:\qwerty.file",
  3.    "C:\ratatata.txt",
  4.    "C:\Windows\Explorer.exe"
  5. }
  6.  
  7. Dim fs As FileStream = Nothing
  8.  
  9. For Each filepath As String In filepaths
  10.    Try
  11.        fs = File.Open(filepath, FileMode.Open, FileAccess.ReadWrite)
  12.  
  13.        ' Controla la excepción de tipo 'FileNotFoundException' solamente cuando el nombre del archivo implicado es "C:\qwerty.file".
  14.    Catch ex As FileNotFoundException When ex.FileName = "C:\qwerty.file"
  15.        MessageBox.Show("Catch ex As FileNotFoundException When ex.FileName = ""C:\qwerty.file""" & Environment.NewLine & ex.Message())
  16.  
  17.        ' Controla las demás excepciones de tipo 'FileNotFoundException'.
  18.    Catch ex As FileNotFoundException
  19.        MessageBox.Show("Catch ex As FileNotFoundException" & Environment.NewLine & ex.ToString())
  20.  
  21.        ' Controla la excepción de tipo 'IOException' solamente cuando el código de error H_RESULT es 'ERROR_SHARING_VIOLATION'.
  22.    Catch ex As IOException When ex.HResult = &H80070020
  23.        MessageBox.Show("Catch ex As IOException When ex.HResult = &H80070020" & Environment.NewLine & ex.Message())
  24.  
  25.        ' Controla las demás excepciones de tipo 'IOException'.
  26.    Catch ex As IOException
  27.        MessageBox.Show("Catch ex As IOException" & Environment.NewLine & ex.Message())
  28.  
  29.        ' Controla el resto de posibles excepciones. ( Todas las excepciones derivan de la clase 'System.Exception'. )
  30.    Catch ex As Exception
  31.        MessageBox.Show("Catch ex As Exception" & Environment.NewLine & ex.Message())
  32.  
  33.        ' Nota: las instrucciones del bloque 'Finally' se ejecutarán al terminar la ejecución del bloque 'Try/Catch',
  34.        ' por lo que podemos (y debemos) utilizar este bloque para asegurarnos de liberar recursos acumulados en el bloque 'Try'.
  35.    Finally
  36.        If (fs IsNot Nothing) Then
  37.            fs.Dispose()
  38.        End If
  39.  
  40.    End Try
  41. Next filepath

Saludos.


Título: Re: Instrucciones para Excepciones
Publicado por: DSREY en 15 Agosto 2017, 01:12 am
ok, gracias y si me sirvio mucho,
cuando tenga alguna duda ya la publicare en .net

por cierto elektro se ve q dominas bien programacion..  en unos años tambn lo hare asi.