Control Estructurado de Excepciones

download Control Estructurado de Excepciones

of 30

Transcript of Control Estructurado de Excepciones

  • 8/14/2019 Control Estructurado de Excepciones

    1/30

    ontro Estructura o eon ro s ruc ura o eExcepcionesExcepciones

    En visual Basic.net el colapso de unEn visual Basic.net el colapso de unprograma constituye un problemaprograma constituye un problemainesperado del cual este no puedeinesperado del cual este no puederecuperarse.recuperarse.

    colapso de programa no pudo cargar unacolapso de programa no pudo cargar unaimagen desde un archivo o cuandoimagen desde un archivo o cuandointrodujo intencionalmente errores en suintrodujo intencionalmente errores en sucdigo de programacin durante lacdigo de programacin durante la

    depuracin, o cuando le dio error por eldepuracin, o cuando le dio error por eltipo de dato que declaro en la variable ytipo de dato que declaro en la variable yel que contiene el objeto textbox.el que contiene el objeto textbox.

  • 8/14/2019 Control Estructurado de Excepciones

    2/30

    ontro structura o eon ro s ruc ura o eExcepcionesExcepciones

    es posible escribir rutinas Visual Basic.netes posible escribir rutinas Visual Basic.net

    especiales, llamadas controladoresespeciales, llamadas controladores

    estructurados de excepciones (o errores)estructurados de excepciones (o errores)

    Los controladores de errores manejan losLos controladores de errores manejan los

    errores en tiempo de ejecucin indicando alerrores en tiempo de ejecucin indicando al

    programa como deben continuar cuandoprograma como deben continuar cuando

    una de sus instrucciones no funciona.una de sus instrucciones no funciona.

  • 8/14/2019 Control Estructurado de Excepciones

    3/30

    ontro structura o eon ro s ruc ura o eExcepcionesExcepciones

    Los controladores de errores pueden colocarse enLos controladores de errores pueden colocarse encada procedimiento de evento en donde exista lacada procedimiento de evento en donde exista laposibilidad de enfrentar problemas, o en funciones oposibilidad de enfrentar problemas, o en funciones osubprogramas genricos que asumen un controlsubprogramas genricos que asumen un controlsistemtico despus de que se ha presentado unsistemtico despus de que se ha presentado un

    error.error. Los controladores de errores atrapan o detectan losLos controladores de errores atrapan o detectan los

    problemas empleando bloques de cdigo Tryproblemas empleando bloques de cdigo Try

    Catch y un objeto especial denominado ErrCatch y un objeto especial denominado Err

  • 8/14/2019 Control Estructurado de Excepciones

    4/30

    ontro structura o eon ro s ruc ura o eExcepcionesExcepciones

    Dicho objeto tiene una propiedad Number queDicho objeto tiene una propiedad Number que

    identifica el nmero de error, y una propiedadidentifica el nmero de error, y una propiedadDescription que se puede utilizar para desplegarDescription que se puede utilizar para desplegaruna descripcin del mismouna descripcin del mismo

    Por ejemplo, cuando el error en tiempo dePor ejemplo, cuando el error en tiempo de

    ejecucin esta asociado con la carga de un archivoejecucin esta asociado con la carga de un archivodesde una unidad USB, el controlador de errordesde una unidad USB, el controlador de errorpodra desplegar un mensaje personalizadopodra desplegar un mensaje personalizadoidentificando el problema y pidindole al usuarioidentificando el problema y pidindole al usuarioque inserte un USB, en lugar de permitir que laque inserte un USB, en lugar de permitir que la

    operacin incorrecta detenga el programa.operacin incorrecta detenga el programa.

  • 8/14/2019 Control Estructurado de Excepciones

    5/30

    on ro s ruc ura o eon ro s ruc ura o eExcepcionesExcepciones

    Los controladores de errores se pueden emplearLos controladores de errores se pueden emplear

    en cualquier situaciones que determinada accinen cualquier situaciones que determinada accin(esperada o inesperada) pueda producir una(esperada o inesperada) pueda producir unaexcepcin que detenga la ejecucin delexcepcin que detenga la ejecucin delprograma.programa.

    Normalmente los controladores de errores seNormalmente los controladores de errores seutilizan para manejar eventos externos queutilizan para manejar eventos externos queafectan el programa (por ejemplo, eventosafectan el programa (por ejemplo, eventoscausados por fallas en una conexin de red o concausados por fallas en una conexin de red o conInternet, un CD o disco mal insertado en laInternet, un CD o disco mal insertado en launidad, o una impresora o escner apagados).unidad, o una impresora o escner apagados).

  • 8/14/2019 Control Estructurado de Excepciones

    6/30

    on ro s ruc ura o eon ro s ruc ura o eExcepcionesExcepciones

  • 8/14/2019 Control Estructurado de Excepciones

    7/30

    on ro s ruc ura o eExcepcionesExcepciones

  • 8/14/2019 Control Estructurado de Excepciones

    8/30

    on ro s ruc ura o eon ro s ruc ura o eExcepcionesExcepciones

    El bloque de cdigo que se utiliza para controlar un errorEl bloque de cdigo que se utiliza para controlar un error

    en tiempo de ejecucin se llama Try.Catch. Paraen tiempo de ejecucin se llama Try.Catch. Paraaprovecharlo es proceso colocar la instruccin tryaprovecharlo es proceso colocar la instruccin trydentro del procedimiento de eventodentro del procedimiento de evento

    justo antes de la instruccin que nos preocupa, y lajusto antes de la instruccin que nos preocupa, y lainstruccin Catch inmediatamente despus con una listainstruccin Catch inmediatamente despus con una lista

    de las instrucciones que se desea ejecutar en caso dede las instrucciones que se desea ejecutar en caso deque ocurra un error en tiempo de ejecucinque ocurra un error en tiempo de ejecucin

    Tambin es posible incluir diversas instruccionesTambin es posible incluir diversas instruccionesopcionales, por ejemplo, Catch When, Finally, Exit Try yopcionales, por ejemplo, Catch When, Finally, Exit Try ybloques de cdigo Try.Catch anidados.bloques de cdigo Try.Catch anidados.

  • 8/14/2019 Control Estructurado de Excepciones

    9/30

    ontro structura o eon ro s ruc ura o eExcepcionesExcepciones

    La sintaxis bsica de los controladores deLa sintaxis bsica de los controladores de

    excepciones Try.Catch es tan simple comoexcepciones Try.Catch es tan simple comose muestra ase muestra a continuacin:continuacin:

    TryTry

    Instrucciones que podran ocasionar un errorInstrucciones que podran ocasionar un error

    enen tiempo de ejecucintiempo de ejecucin CatchCatch Instrucciones que deben ejecutarseInstrucciones que deben ejecutarse

    cuando ocurre uncuando ocurre un error en tiempo deerror en tiempo de

    ejecucinejecucin FinallyFinally Instrucciones opcionales que debenInstrucciones opcionales que deben

    ejecutarse siejecutarse si ocurre o no un errorocurre o no un error

    End TryEnd Try

  • 8/14/2019 Control Estructurado de Excepciones

    10/30

    Control Estructurado deControl Estructurado deExcepcionesExcepciones

    La instruccin Try identifica el principioLa instruccin Try identifica el principiodel controlador de errores dentro deldel controlador de errores dentro delcual se requieren las palabras clave Try,cual se requieren las palabras clave Try,

    Catch y End TryCatch y End Try mientras que Finally y las instruccionesmientras que Finally y las instrucciones

    posteriores son opcionales.posteriores son opcionales.

    C l E d dE

  • 8/14/2019 Control Estructurado de Excepciones

    11/30

    Control Estructurado deontro Estructura o eExcepcionesExcepciones

    El siguiente ejemplo muestra un error comnEl siguiente ejemplo muestra un error comn

    en tiempo de ejecucin: problemas con unaen tiempo de ejecucin: problemas con unaruta de archivo, con unidad de disco oruta de archivo, con unidad de disco odispositivo perifrico. Para llevar a cabo estedispositivo perifrico. Para llevar a cabo esteejercicio tendr que cargar un proyecto, cuyaejercicio tendr que cargar un proyecto, cuya

    intencin es mostrar como se abren archivosintencin es mostrar como se abren archivosgrficos dentro de un objeto cuadro degrficos dentro de un objeto cuadro deimagen en un formulario de Windows.imagen en un formulario de Windows.

    t t t

  • 8/14/2019 Control Estructurado de Excepciones

    12/30

    ontro structura o eon ro s ruc ura o eExcepcionesExcepciones

    A fin de alistarse lo realizaremos aA fin de alistarse lo realizaremos atravs de una USB, copiaremos untravs de una USB, copiaremos unarchivo el cual esta en la U virtualarchivo el cual esta en la U virtualllamado mujer.bmp.llamado mujer.bmp.

    Para llevarlo a feliz trminoPara llevarlo a feliz trminodeberemos de retirar el dispositivodeberemos de retirar el dispositivodonde se encuentra el archivodonde se encuentra el archivo

  • 8/14/2019 Control Estructurado de Excepciones

    13/30

    on ro s ruc ura o eon ro s ruc ura o eExcepcionesExcepciones

    Experimentando con los errores de unidadExperimentando con los errores de unidad

    de discode disco Inserte su USB en la PCInserte su USB en la PC

    copie el archivo en su USB el cual secopie el archivo en su USB el cual se

    llama mujer.bmp (lo debe bajar de lallama mujer.bmp (lo debe bajar de laUvirtual)Uvirtual)

    necesitaremos para este ejercicio losnecesitaremos para este ejercicio los

    siguiente controles:siguiente controles:

    t t t

  • 8/14/2019 Control Estructurado de Excepciones

    14/30

    ontro structura o eon ro s ruc ura o eExcepcionesExcepciones

    t t t

  • 8/14/2019 Control Estructurado de Excepciones

    15/30

    ontro structura o eon ro s ruc ura o eExcepcionesExcepciones

    Haga doble clic en el botn Revisar unidad delHaga doble clic en el botn Revisar unidad del

    formulario para desplegar el procedimiento deformulario para desplegar el procedimiento deevento Btnrevisar_clickevento Btnrevisar_click

    Se digitara la siguiente lnea de comando:Se digitara la siguiente lnea de comando:

  • 8/14/2019 Control Estructurado de Excepciones

    16/30

    Control Estructurado deControl Estructurado deExcepcionesExcepciones

    Con su USB introducida en la PC enCon su USB introducida en la PC enla unidad E (o equivalente), hagala unidad E (o equivalente), hagaclic en el botn iniciar depuracinclic en el botn iniciar depuracin

    de la barra de herramientasde la barra de herramientasEstndar para ejecutar el programaEstndar para ejecutar el programa

    Enseguida aparecer el formularioEnseguida aparecer el formulario

    del proyecto como se muestra adel proyecto como se muestra acontinuacin:continuacin:

  • 8/14/2019 Control Estructurado de Excepciones

    17/30

    Control Estructurado deControl Estructurado deExcepcionesExcepciones

  • 8/14/2019 Control Estructurado de Excepciones

    18/30

    on ro s ruc ura o eon ro s ruc ura o eExcepcionesExcepciones

    Haga clic en el botn Revisar unidad delHaga clic en el botn Revisar unidad del

    formulario. El programa cargara elformulario. El programa cargara elarchivo mujer.bmmp desde la USB y loarchivo mujer.bmmp desde la USB y lodesplegara en el cuadro de imagen comodesplegara en el cuadro de imagen comose muestra en la figura siguiente:se muestra en la figura siguiente:

    C t l E t t d dt E t t

  • 8/14/2019 Control Estructurado de Excepciones

    19/30

    Control Estructurado deontro Estructura o eExcepcionesExcepciones

    retire la USB de la PCretire la USB de la PC Si esta utilizando un tipo distinto deSi esta utilizando un tipo distinto de

    medio, retrelo ahora. En caso demedio, retrelo ahora. En caso de

    que este haciendo la prueba con unque este haciendo la prueba con undispositivo de almacenamientodispositivo de almacenamientoremovible, siga los procedimientosremovible, siga los procedimientosnormales para desactivarlos denormales para desactivarlos deforma segura retrelo.forma segura retrelo.

    C t l E t t d dC t l E t t d d

  • 8/14/2019 Control Estructurado de Excepciones

    20/30

    Control Estructurado deControl Estructurado deExcepcionesExcepciones

    El programa no podr encontrar al archivo, yEl programa no podr encontrar al archivo, y

    Visual Basic.net emitir un error en tiempoVisual Basic.net emitir un error en tiempode ejecucin, o excepcin incontrolable,de ejecucin, o excepcin incontrolable,ocasionando que el programa se detengaocasionando que el programa se detenga

  • 8/14/2019 Control Estructurado de Excepciones

    21/30

    on ro s ruc ura o eon ro s ruc ura o eExcepcionesExcepciones

    Haga clic en el botn DetenerHaga clic en el botn Detener

    depuracin del cuadro dedepuracin del cuadro deherramientas estndar para cerrarherramientas estndar para cerrarel programa.el programa.

    Escriba un controlador de erroresEscriba un controlador de erroresde unidad de discode unidad de disco

    no hemos especificado lo que Visualno hemos especificado lo que Visual

    Basic.net debe hacer cuandoBasic.net debe hacer cuandoencuentre una excepcin que noencuentre una excepcin que nosepa como manejarsepa como manejar..

    t t t

  • 8/14/2019 Control Estructurado de Excepciones

    22/30

    ontro structura o eon ro s ruc ura o eExcepcionesExcepciones

    La solucin a este problema consisteLa solucin a este problema consiste

    en escribir un bloque de cdigo Tryen escribir un bloque de cdigo TryCatch que reconozca el error y leCatch que reconozca el error y leinforme a visual Basic.net como debeinforme a visual Basic.net como debe

    actaacta A continuacin agregaremosA continuacin agregaremos

    precisamente este controlador deprecisamente este controlador de

    errores.errores.

  • 8/14/2019 Control Estructurado de Excepciones

    23/30

    on ro s ruc ura o eon ro s ruc ura o eExcepcionesExcepciones

    on ro s ruc ura o eon ro s ruc ura o e

  • 8/14/2019 Control Estructurado de Excepciones

    24/30

    on ro s ruc ura o eon ro s ruc ura o eExcepcionesExcepciones

    Este cdigo de programacin nos muestra elEste cdigo de programacin nos muestra el

    uso bsico de los bloques Try..Catch: coloca lauso bsico de los bloques Try..Catch: coloca lainstruccin FromFile que esta causandoinstruccin FromFile que esta causandoproblemas dentro de un bloque de cdigo Tryproblemas dentro de un bloque de cdigo Tryde manera que, cuando el cdigo dede manera que, cuando el cdigo de

    programacin produce un error, se ejecutanprogramacin produce un error, se ejecutanlas instrucciones del bloque de cdigo Catch.las instrucciones del bloque de cdigo Catch.

    Este ltimo simplemente despliega un cuadroEste ltimo simplemente despliega un cuadrode mensajes que pide al usuario que inserte lade mensajes que pide al usuario que inserte la

    memoria USB de forma que el programamemoria USB de forma que el programapueda proseguirpueda proseguir

    on ro s ruc ura o eon ro s ruc ura o e

  • 8/14/2019 Control Estructurado de Excepciones

    25/30

    on ro s ruc ura o eon ro s ruc ura o eExcepcionesExcepciones

    Retire la USB de la PC y haga clic en el botn IniciarRetire la USB de la PC y haga clic en el botn Iniciardepuracin para ejecutar el programa.depuracin para ejecutar el programa.

    Haga clic en el botn Revisar unidadHaga clic en el botn Revisar unidad

    En lugar de detener la ejecucin del programa, VisualEn lugar de detener la ejecucin del programa, VisualBasic.net invocara la instruccin Catch, la cual despliega elBasic.net invocara la instruccin Catch, la cual despliega elcuadro de mensaje siguiente:cuadro de mensaje siguiente:

    on ro s ruc ura o eon ro s ruc ura o e

  • 8/14/2019 Control Estructurado de Excepciones

    26/30

    on ro s ruc ura o eon ro s ruc ura o eExcepcionesExcepciones

    Haga clic en aceptar y despus vuelva a hacerHaga clic en aceptar y despus vuelva a hacerclic en el botn Revisar unidadclic en el botn Revisar unidad

    El programa volver a desplegar el mensaje deEl programa volver a desplegar el mensaje deerror, pidindole que inserte el discoerror, pidindole que inserte el discocorrectamente en la unidad E. Siempre que existacorrectamente en la unidad E. Siempre que existaun problema en la carga del archivo aparecerun problema en la carga del archivo aparecer

    este cuadro de mensaje.este cuadro de mensaje. Inserte la USB en la unidad correspondiente,Inserte la USB en la unidad correspondiente,

    espere un momento a que el sistema reconozcaespere un momento a que el sistema reconozcala USB (cierre cualquier ventana que aparezcala USB (cierre cualquier ventana que aparezcacuando inserte la USB), haga clic en Aceptar ycuando inserte la USB), haga clic en Aceptar y

    luego una vez mas en el botn Revisar unidad.luego una vez mas en el botn Revisar unidad.

    on ro s ruc ura o eon ro s ruc ura o e

  • 8/14/2019 Control Estructurado de Excepciones

    27/30

    on ro s ruc ura o eon ro s ruc ura o eExcepcionesExcepciones

    Utilice la clusula Finally para

    realizar tareas de limpieza Se puede utilizar la clusula opcional

    Finally junto con TryCatch para

    ejecutar un bloque de declaracionessin importar la forma en que elcompilador ejecute los bloques Try o

    catch.

  • 8/14/2019 Control Estructurado de Excepciones

    28/30

    Control Estructurado deControl Estructurado deExcepcionesExcepciones

    Control Estructurado deControl Estructurado de

  • 8/14/2019 Control Estructurado de Excepciones

    29/30

    Control Estructurado deControl Estructurado deExcepcionesExcepciones

    El controlador de errores desplegara un cuadroEl controlador de errores desplegara un cuadro

    de dialogo pidindole que inserte el dispositivode dialogo pidindole que inserte el dispositivoUSB en la unidad E.USB en la unidad E.

    Haga clic en AceptarHaga clic en Aceptar

    El programa ejecutara la clusula Finally delEl programa ejecutara la clusula Finally delcontrolador de errores y aparecer el cuadro decontrolador de errores y aparecer el cuadro demensaje siguientemensaje siguiente

  • 8/14/2019 Control Estructurado de Excepciones

    30/30

    ejercicioejercicio

    Realizar un programa que sume dosRealizar un programa que sume dosnumero y mediante Try Catch quenumero y mediante Try Catch quegarantice que no se detenga elgarantice que no se detenga el

    problema cuando se lean caracteresproblema cuando se lean caracteresen vez de nmeros. Que muestre unen vez de nmeros. Que muestre unmensaje como: digite valoresmensaje como: digite valores

    numricosnumricos