Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
RPC använder samma metod för undantagshantering som Windows-API:et.
RpcTryFinally / RpcFinally / RpcEndFinally-strukturen motsvarar Windows-try-finally--instruktion. RPC-undantagskonstruktionen RpcTryExcept / RpcExcept / RpcEndExcept motsvarar Windows try-except uttalande.
När du använder RPC-undantagshanterare är källkoden på klientsidan portabel. De olika RPC-huvudfilerna som tillhandahålls för varje plattform löser RpcTry och RpcExcept makron för varje plattform. I Windows-miljön mappas dessa makron direkt till Windows-try-finally och try-except-instruktioner. I andra miljöer mappas dessa makron till andra plattformsspecifika implementeringar av undantagshanterare.
Potentiella undantag som genereras av dessa strukturer inkluderar den uppsättning felkoder som returneras av RPC-funktionerna med prefixen RPC_S_ och RPC_X och den uppsättning undantag som returneras av Windows. Mer information finns i RPC Return Values.
Medan RpcTry och RpcExcept makron ger ett anpassningsbart plattformsoberoende sätt att hantera undantag, är RpcExceptionFilter det rekommenderade sättet att hantera undantag i Windows Vista och senare versioner av Windows. Det kräver inte att anpassade filter skrivs för att avbilda många av de vanligaste strukturerade undantagen. Anpassade undantagsfilter kräver dock fortfarande RpcExcept.
Undantag som inträffar i serverprogrammet, server stub och server run-time-biblioteket (ovanför transportlagret) sprids till klienten. Inga undantag sprids från servertransportnivån. Den rekommenderade metoden för en serverrutin för att returnera fel till RPC-körningstiden är att utlösa ett undantag. En serverrutin kan använda de metoder som är lämpliga för att kommunicera fel mellan serverrutiner, men om det uppstår ett fel som hindrar den från att köra fjärrproceduren bör den skapa ett undantag efter rensningen och innan den återgår till RPC-körningstiden, i stället för att returnera ett värde till RPC som endast serverrutinen känner igen som ett fel.
Följande bild visar hur undantag returneras från servern till klienten.
              
              
            
RPC-undantagshanterare skiljer sig något från undantagshanteringsmakronen Open Software Foundation-Distributed Computing Environment (OSF-DCE) TRY, FINALLYoch CATCH. Olika leverantörer tillhandahåller bland annat filer som mappar OSF-DCE RPC-funktioner till Microsoft RPC-funktionerna, inklusive TRY, CATCH, CATCH_ALLoch ENDTRY. Dessa huvudfiler mappar även felkoderna RPC_S_* till OSF-DCE undantagsmotsvarigheter, rpc_s_*, och mappar RPC_X_* felkoder till rpc_x_*. Använd dessa inkluderingsfiler för portabilitet av OSF-DCE. Mer information om RPC-undantagshanterare finns i RpcExceptionFilter, RpcExcept, RpcFinally. Mer information om Windows-undantagshanterare finns i Strukturerad undantagshantering.