visual que net entre diferencia descargar creacion caracteristicas año c# vb.net exception-handling vb.net-to-c#

c# - que - visual basic.net pdf



C#equivalente a la captura de VB.NET... cuando (3)

Eso no recreará la misma semántica que la expresión VB Catch When. Hay una diferencia clave. La VB Cuando la expresión se ejecuta antes de que se desenrolle la pila. Si tuviera que examinar la pila en el momento de un Filtro, realmente vería el marco donde se lanzó la excepción.

Tener un if en el bloque catch es diferente porque el bloque catch se ejecuta después de desenrollar la pila. Esto es especialmente importante cuando se trata de informes de errores. En el escenario VB, tiene la capacidad de bloquearse con un seguimiento de la pila, incluido el error. No es posible obtener ese comportamiento en C #.

EDITAR:

Escribió una publicación de blog detallada sobre el tema.

En VB.NET, a menudo Catch…When :

Try … Catch e As ArgumentNullException When e.ParamName.ToUpper() = "SAMPLES" … End Try

¿Hay un C # equivalente a Catch…When ?

No quiero recurrir a usar una instrucción if dentro de un catch si es posible.


Esta funcionalidad fue anunciada para C # 6. Ahora es posible escribir

try { … } catch (MyException e) when (myfilter(e)) { … }

Puede descargar la vista previa de Visual Studio 2015 ahora para verificar esto o esperar el lanzamiento oficial.


No hay equivalente a Catch…When en C #. Realmente tendrá que recurrir a una declaración if dentro de su catch , luego volver a lanzar si su condición no se cumple:

try { … } catch (ArgumentNullException e) { if ("SAMPLES" == e.ParamName.ToUpper()) { … // handle exception } else { throw; // condition not fulfilled, let someone else handle the exception } }