Compartir a través de


Procedimiento para detectar excepciones

Última modificación: miércoles, 24 de marzo de 2010

Hace referencia a: SharePoint Server 2010

Coloque las secciones del código que pueden producir excepciones en un bloque Try y coloque el código que controla las excepciones en un bloque Catch. El orden de las instrucciones Catch es importante. Cuando se produce una excepción, se pasa por la pila y se da a cada bloque Catch la oportunidad de controlarla. El bloque Catch que debe controlar la excepción viene determinado por la coincidencia del tipo de la excepción con el nombre de la excepción especificada en el bloque Catch. Por ejemplo, el siguiente bloque Catch detecta excepciones de Protocolo simple de acceso a objetos (SOAP):

catch (SoapException e)
{
    Console.WriteLine("SOAP Exception Error Code: {0}", 
        e.SubCode.Code.Name);
    Console.WriteLine("SOAP Exception Message is: {0}", 
        e.Message);
}
Catch e As SoapException
    Console.WriteLine("SOAP Exception Error Code: {0}", e.SubCode.Code.Name)
    Console.WriteLine("SOAP Exception Message is: {0}", e.Message)
End Try

Si no existe ningún bloque Catch específico del tipo, la excepción se detecta por un bloque Catch general, si existe alguna. Por ejemplo, puede detectar excepciones generales al agregar el siguiente código:

catch (Exception e)
{
    Console.WriteLine("Exception Message: {0}", e.Message);
}
Catch e As Exception
    Console.WriteLine("Exception Message: {0}", e.Message)
End Try

Los bloques Catch se colocan dirigidos a tipos específicos de excepciones antes de una excepción general.

Common Language Runtime detecta las excepciones que no se detectan mediante un bloque Catch. Según la configuración del tiempo de ejecución, aparecerá un cuadro de diálogo de depuración o el programa detendrá la ejecución y aparecerá un cuadro de diálogo con información de excepciones. Para obtener información acerca de la depuración, vea el tema sobre depuración y generación de perfiles de aplicaciones (https://msdn.microsoft.com/es-es/library/7fe0dd2y.aspx).

Para obtener más información acerca de cómo administrar excepciones, vea el tema sobre procedimientos recomendados para controlar excepciones (https://msdn.microsoft.com/es-es/library/seyhszts.aspx).

Ejemplo

using System;
using System.Text;
using System.Web.Services.Protocols;
using ExcelWebService.myserver02;
namespace ExcelWebService
{
    class WebService
    {
        [STAThread]
        static void Main(string[] args)
        {
            // Instantiate the Web service and make a status array object
            ExcelService xlservice = new ExcelService();
            Status[] outStatus;
            RangeCoordinates rangeCoordinates = new RangeCoordinates();
            string sheetName = "Sheet1";

            // Set the path to the workbook to open.
            // TODO: Change the path to the workbook
            // to point to a workbook you have access to.
            // The workbook must be in a trusted location.
            // If workbookPath is a UNC path, the application 
            // must be on the same computer as the server.
            // string targetWorkbookPath = 
            // @"\\MyServer\myxlfiles\Formulas.xlsx";
            string targetWorkbookPath = 
            "http://myserver02/DocLib/Shared%20Documents/Basic1.xlsx";
            // Set credentials for requests
            xlservice.Credentials = 
               System.Net.CredentialCache.DefaultCredentials;

            try
            {
                // Call the OpenWorkbook method and point to the 
                // trusted location of the workbook to open.
                string sessionId = xlservice.OpenWorkbook(targetWorkbookPath, "en-US", "en-US", out outStatus);
                Console.WriteLine("sessionID : {0}", sessionId);
                // Prepare object to define range coordinates, 
                // and call the GetRange method.
                rangeCoordinates.Column = 0;
                rangeCoordinates.Row = 0;
                rangeCoordinates.Height = 18;
                rangeCoordinates.Width = 10;

                object[] rangeResult1 = xlservice.GetRange(sessionId, sheetName, rangeCoordinates, false, out outStatus);
                Console.WriteLine("Total rows in range: " + rangeResult1.Length);

                Console.WriteLine("Sum in last column is: " + ((object[])rangeResult1[2])[3]);

               // Close the workbook. This also closes the session.
                xlservice.CloseWorkbook(sessionId);
            }
            catch (SoapException e)
            {
                Console.WriteLine("SOAP Exception Error Code: {0}", 
                    e.SubCode.Code.Name);
                Console.WriteLine("SOAP Exception Message is: {0}", 
                    e.Message);
            }

            catch (Exception e)
            {
                Console.WriteLine("Exception Message: {0}", e.Message);
            }
            Console.ReadLine();
        }
    }
}
Imports System
Imports System.Text
Imports System.Web.Services.Protocols
Imports ExcelWebService.myserver02
Namespace ExcelWebService
    Friend Class WebService
        <STAThread> _
        Shared Sub Main(ByVal args() As String)
            ' Instantiate the Web service and make a status array object
            Dim xlservice As New ExcelService()
            Dim outStatus() As Status
            Dim rangeCoordinates As New RangeCoordinates()
            Dim sheetName As String = "Sheet1"

            ' Set the path to the workbook to open.
            ' TODO: Change the path to the workbook
            ' to point to a workbook you have access to.
            ' The workbook must be in a trusted location.
            ' If workbookPath is a UNC path, the application 
            ' must be on the same computer as the server.
            ' string targetWorkbookPath = 
            ' @"\\MyServer\myxlfiles\Formulas.xlsx";
            Dim targetWorkbookPath As String = "http://myserver02/DocLib/Shared%20Documents/Basic1.xlsx"
            ' Set credentials for requests
            xlservice.Credentials = System.Net.CredentialCache.DefaultCredentials

            Try
                ' Call the OpenWorkbook method and point to the 
                ' trusted location of the workbook to open.
                Dim sessionId As String = xlservice.OpenWorkbook(targetWorkbookPath, "en-US", "en-US", outStatus)
                Console.WriteLine("sessionID : {0}", sessionId)
                ' Prepare object to define range coordinates, 
                ' and call the GetRange method.
                rangeCoordinates.Column = 0
                rangeCoordinates.Row = 0
                rangeCoordinates.Height = 18
                rangeCoordinates.Width = 10

                Dim rangeResult1() As Object = xlservice.GetRange(sessionId, sheetName, rangeCoordinates, False, outStatus)
                Console.WriteLine("Total rows in range: " & rangeResult1.Length)

                Console.WriteLine("Sum in last column is: " & (CType(rangeResult1(2), Object()))(3))

               ' Close the workbook. This also closes the session.
                xlservice.CloseWorkbook(sessionId)
            Catch e As SoapException
                Console.WriteLine("SOAP Exception Error Code: {0}", e.SubCode.Code.Name)
                Console.WriteLine("SOAP Exception Message is: {0}", e.Message)

            Catch e As Exception
                Console.WriteLine("Exception Message: {0}", e.Message)
            End Try
            Console.ReadLine()
        End Sub
    End Class
End Namespace

Vea también

Tareas

Tutorial: Desarrollar una aplicación personalizada mediante Excel Web Services

Procedimiento para confiar en una ubicación

Procedimiento para guardar desde el cliente Excel en el servidor

Procedimiento para usar la propiedad SubCode para capturar códigos de error

Conceptos

Obtener acceso a la API de SOAP

Excel Services Alerts

Problemas conocidos y sugerencias de Servicios de Excel

Llamadas SOAP de bucle invertido y vinculación directa