Baixe o app para aproveitar ainda mais
Prévia do material em texto
DESENVOLVIMENTO DE SOFTWARE AULA 1 INTRODUÇÃO Nesta aula, você irá: 1.Conhecer o mercado de software; 2.Aprender as características do .NET Framework 4.0; 3.Conhecer as linguagens de programação para .NET Framework 4.0; 4.Aprender a baixar e instalar o .NET Framework 4.0; 5.Conhecer as edições do Visual Studio 2010; 6.Aprender a baixar e instalar o Visual Basic 2010 Express. O Mercado De Software Braun apresenta (2010) que: • Os estados unidos da américa (EUA) lidera o mercado mundial de software e serviços, com faturamento de US$ 349,7 bilhões em 2009. • O Japão está na segunda posição, com faturamento de US$ 71,7 bilhões. • O Brasil manteve a 12ª posição no mercado mundial de software, com faturamento de US$ 15,36 bilhões em 2009, com crescimento de 2,4% em relação a 2008, segundo o estudo realizado pelo IDC para a Associação Brasileira das Empresas de Software (ABES), superando a média global de 0,89% em relação a 2008. Plataforma .NET Framework 4.0 A plataforma .NET Framework 4.0 (.NET 4.0) é uma plataforma de softwares que fornece integração com um conjunto variado de linguagens de programação, produtividade em desenvolvimento de aplicações, DESENVOLVIMENTO DE SOFTWARE 1 implantação e execução de aplicações em um ambiente gerenciado (MSDN, 2010). O .NET 4.0 é também definido como tecnologia porque é composto de bibliotecas e ferramentas executáveis integradas com o sistema operacional como, por exemplo, o vbc.exe que é o compilador do Visual Basic (VB). Arquitetura do .NET 4.0 O .NET 4.0 é uma camada de softwares que fica entre o sistema operacional e as aplicações. Esta camada é subdividida em duas camadas, conforme mostra a figura 2.1. A camada inferior, chamada de Common Language Runtime (CLR), executa a maior parte das tarefas e a camada superior, chamada de Base Class Library (BCL), contém os tipos, as interfaces e as bibliotecas de classes como, por exemplo, Windows Forms, Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF), ASP.NET, ADO.NET, Windows Workflow Foundation, LINQ, Parallel FX etc., utilizadas para a criação de uma aplicação (DEL SOLE, 2010). Desta forma, um dos grandes benefícios proporcionados pelo .NET 4.0 é o aumento da produtividade no DESENVOLVIMENTO DE SOFTWARE 2 desenvolvimento de software, uma vez que o .NET 4.0 fornece muitas das classes geralmente necessárias para o desenvolvimento de uma aplicação, dispensando o esforço e o consumo de tempo para que estas sejam codificadas pelo programador da aplicação. O .NET 4.0 é standalone, ou seja, todo o CLR e toda a BCL estão contidos na versão da plataforma e, desta forma, não necessita que as versões anteriores estejam instaladas. Esta é uma grande diferença em relação às versões anteriores do .NET, que eram plataformas incrementais que necessitavam das versões prévias instaladas como, por exemplo, o .NET 3.5 que contém o LINQ, o .NET 3.0 porque este contém o WPF e também o .NET 2.0 que contém o Windows Forms (DEL SOLE, 2010). O Common Language Runtime (CLR) provê uma camada comum a todas as linguagens .NET. O CLR permite que a aplicação seja executada em um ambiente gerenciado onde a aplicação se comunica com o .NET, ao invés de se comunicar diretamente com o sistema operacional. Desta forma, o CLR é responsável pelo controle da DESENVOLVIMENTO DE SOFTWARE 3 execução das aplicações, pelo gerenciamento da memória, pelo gerenciamento dos recursos, pelo acesso aos recursos do sistema, pelos serviços de segurança etc. O código da aplicação escrito em alguma linguagem .NET para este ambiente gerenciado é conhecido como managed code (código gerenciado) (DEL SOLE, 2010). Os compiladores das linguagens .NET, ao compilarem os códigos das aplicações, geram pacotes chamados de .NET assemblies (montagens). Um .NET assembly (montagem) é um arquivo que contém códigos em Microsoft Intermediate Language (MSIL) e metadados (metadata). A MSIL é uma linguagem assembly de alto nível, orientada a objetos, com conjunto de instruções independentes de CPU. A MSIL é dita uma linguagem comum, considerando que códigos implementados em diferentes linguagens .NET, quando compilados, são convert idos em MSIL. Os metadados contêm informações sobre o código como, por exemplo, os tipos implementados, as funções, os procedimentos, as assinaturas etc. (DEL SOLE, 2010). Quando um .NET assembly é chamado, o compilador just-in-time (JIT) traduz o código em MSIL do .NET assembly para o código executável equivalente e nativo para o sistema operacional no qual o .NET assembly está instalado. O código executável nativo é chamado de jitted code. Uma outra opção, chamada prejitting, é pré- compilar o código MSIL com a ferramenta ngen.exe. Todos os assemblies do BCL são pré-compilados (prejitted) (GRIMES, 2002). A Base Class Library (BCL) fornece milhares de tipos, interfaces e classes para serem utilizados nas aplicações. DESENVOLVIMENTO DE SOFTWARE 4 Os namespaces são pacotes ou contêineres que agrupam os tipos, as interfaces e as classes relacionadas a uma tecnologia como, por exemplo, o namespace System.Windows.Forms para Windows Forms e o namespace System.Web para aplicações para web. A BCL é composta de diversos assemblies. Um dos mais importantes é o MsCorlib.dll (Microsoft Core Library). Alguns são para tecnologias especificas como, por exemplo, o System.ServiceModel.dll que integra a BCL ao Windows Communication Foundation (WCF). INSTALAÇÃO DO .NET FRAMEWORK 4.0 Acesse a página web <http://msdn.microsoft.com/en- us/library/5a4x27ek.aspx > para conhecer os requisitos de sistema para instalação do .NET 4.0 e faça o download do programa de instalação via web (Web installer) dotNetFx40_Full_setup.exe, execute o programa e siga as instruções para instalação. O .NET Framework é instalado em uma pasta de caminho %windir%\Microsoft.NET\Framework\4.0 ou similar, dependendo do ambiente. LINGUAGENS DE PROGRAMAÇÃO PARA .NET FRAMEWORK 4.0 A Microsoft oferece uma família de linguagens de programação para o .NET 4.0. As aplicações para .NET 4.0 podem ser desenvolvidas em linguagem Visual Basic 2010 (VB 10.0), Visual C# 4.0, Visual F# 2010 e Visual C++ 2010. Estas linguagens de programação permitem o desenvolvimento de aplicações usando ferramentas visuais disponíveis na interface gráfica para usuário (graphical user interface - GUI) do Visual Studio 2010. DESENVOLVIMENTO DE SOFTWARE 5 Além destas linguagens, podem ser utilizadas também as linguagens dinâmicas IronRuby e IronPython. A linguagem J# não faz parte da família de linguagens para .NET 4.0. EDIÇÕES DO VISUAL STUDIO 2010 O Visual Studio 2010 é um poderoso ambiente de desenvolvimento integrado (integrated development environment - IDE), com recursos novos e aprimorados que simplificam e aumentam a produtividade de desenvolvimento, desde o design (projeto) até a implantação. A Microsoft fornece várias edições do Visual Studio 2010 com diferentes recursos e preços para que o profissional de software tenha flexibilidade para escolher a edição mais adequada ao seu trabalho. As edições atualmente disponíveis são (VISUAL STUDIO, 2010): A Microsoft fornece também a edição gratuita chamada Visual Studio 2010 Express para estudantes e desenvolvedores iniciantes. O Visual Studio 2010 Express é composto do Visual Basic 2010 Express, do Visual C# 2010 Express, do Visual C++ 2010 Express e do Visual Web Developer 2010 Express. Clique aqui e saiba como Instalar o VB 2010 Express DESENVOLVIMENTODE SOFTWARE 6 • Nesta aula, você: • Conheceu o mercado de software; • Aprendeu as características do .NET Framework 4.0; •Conheceu as linguagens de programação para .NET Framework 4.0; • Aprendeu a baixar e instalar o .NET Framework 4.0; • Conheceu as edições do Visual Studio 2010; Aprendeu a baixar e instalar o Visual Basic 2010 Express. Registro de Participação 1. Em 2009, o Brasil manteve a ____ posição no mercado mundial de software, segundo o estudo realizado pelo IDC para a Associação Brasileira das Empresas de Software (ABES). 1)1ª 2) 2ª 3) 3ª 4) 12ª 5) 100ª 2. O mercado brasileiro de software e serviços teve durante os anos de 2005 a 2008, crescimentos: 1) superiores a 50% por ano. 2) superiores a 20% por ano. 3) inferiores a 20% por ano. 4) inferiores a 10% por ano. 5) inferiores a 5% por ano. 3. O .NET 4.0 é uma camada de softwares que fica entre o sistema operacional e as aplicações. Esta camada é subdividida em duas camadas. A camada responsável pelo controle da execução das aplicações, pelo gerenciamento da memória, pelo gerenciamento dos recursos, pelo acesso aos recursos do sistema, pelos serviços de segurança é: DESENVOLVIMENTO DE SOFTWARE 7 1) WPF 2) WCF 3) CLR 4) BCL 5) LINQ 4. Os tipos, as interfaces e as bibliotecas de classes do .NET 4.0 estão contidos na camada: 1) WPF 2) WCF 3) CLR 4) BCL 5) LINQ DESENVOLVIMENTO DE SOFTWARE 8 AULA 2 PROGRAMAÇÃO BÁSICA Nesta aula, você irá: 1.Conhecer o histórico da linguagem Visual Basic 2.Conhecer as palavras-chave da linguagem VB 2010 3.Aprender a fazer comentários em linguagem VB 2010 4.Aprender o que é uma variável 5.Aprender o que é uma constante 6.Aprender como se faz uma declaração de uma variável ou constante em linguagem VB 2010 7.Aprender como se faz uma atribuição de um valor à uma variável ou constante em linguagem VB 2010 8.Aprender sobre os tipos de dados da linguagem VB 2010 9.Aprender sobre os operadores da linguagem VB 2010 1. Histórico da Linguagem Visual Basic A linguagem BASIC (Beginner´s All Purpose Symbolic Instruction Code) foi criada em 1964 no Dartmouth College, em New Hampshire, EUA, pelos matemáticos John George Kemeny e Thomas Eugene Kurtzs para os estudantes desenvolverem programas para o Dartmouth Time-Sharing System. Desta forma, é uma linguagem de fácil aprendizado, que foi originalmente chamada de D a r t m o u t h B A S I C . O s a u t o r e s d a l i n g u a g e m disponibilizaram o compilador BASIC sem custos para promover a linguagem. Como resultado, os compiladores BASIC foram implementados em mainframes e nos microcomputadores da DEC, Data General Nova, HP. Uma versão simplificada do BASIC, chamada TinyBASIC, foi desenvolvida por Dr. Li-Chen Wang para máquinas com CPU 8080, que depois foi portada por Dennis Allison para a Altair. Em 1975, a MITS lançou o Altair BASIC, DESENVOLVIMENTO DE SOFTWARE 9 desenvolvido por Wiliam Gates, Paul Allen, fundadores da Micro-Soft (atual Microsoft), e Monte Davidoff em firmware (gravado em memórias PROM) para o microcomputador MITS Altair 8800. O interpretador BASIC foi o primeiro produto comercializado pela Microsoft. Posteriormente, a Microsoft desenvolveu interpretadores BASIC, chamados M i c r o s o f t B A S I C o u M B A S I C , p a r a o u t r o s microcomputadores. Em 1982, a Microsoft lançou o Microsoft QuickBasic para ambientes MS-DOS. Em 1991 foi lançado o Microsoft Visual Basic Windows. Em 1992 foi lançado o Visual Basic 1.0 para DOS e o Visual Basic 2.0 para Windows. O Visual Basic 3.0 foi lançado em 1993. O Visual Basic 4.0 foi lançado em 1996 com suporte a aplicações de 32 bits. O Visual Basic 5.0 foi lançado em 1997 com suporte a criação de controles ActiveX. O Visual Basic 6.0 foi lançado em 1998. O Visual Basic .NET 2005 foi lançado em 2005. O Visual Basic .NET 2008 foi lançado em 2007. O Visual Studio 2010 (VB 10.0) e o Visual Basic 2010 Express foram lançados em 2010 (FREETUTES, 2010; SMILEY, 2010; VISUAL STUDIO, 2010). Atualmente as equipes responsáveis pelas linguagens Visual Basic 2010 e Visual C# 4.0 estão subordinadas à mesma unidade organizacional da Microsoft para que as linguagens tenham recursos similares (KUNK, 2010) PALAVRAS-CHAVE A linguagem de programação VB 2010 possui palavras- chave que são reservadas e não devem ser usadas como identificadores de variáveis, constantes, procedimentos, módulos, sub-rotinas, funções, objetos etc. Você deve evitar também algumas palavras-chave não reservadas da linguagem VB 2010 para manter a legibilidade dos seus códigos. DESENVOLVIMENTO DE SOFTWARE 10 COMENTÁRIOS Os comentários de códigos são utilizados para descrever o código com objetivo de documentar e facilitar o entendimento do programa. Os comentários de códigos em linguagem VB 2010 são prefixados com apóstrofe. O editor de código marca os comentários na cor verde. O compilador VB ignora todos os caracteres após a apóstrofe até o final da linha de código. O exemplo a seguir mostra um comentário de código em VB. 'Este é um comentário de código em VB' VARIÁVEL Variável é um espaço alocado na memória para armazenamento de valores. Uma variável tem um nome identificador, um endereço inicial de alocação na memória, um tamanho do espaço de alocação na memória e um tipo. CONSTANTE Constante é um espaço alocado na memória para armazenamento de um valor, que após a atribuição não pode ser alterado. Uma constante, assim como uma variável, também tem um nome identificador, um endereço inicial de alocação na memória, um tamanho do espaço de alocação na memória e um tipo. TIPOS Um tipo define os tipos de valores a serem armazenados na memória, o espaço a ser alocado na memória para armazenar valores deste tipo e a faixa de valores. DESENVOLVIMENTO DE SOFTWARE 11 Os tipos facilitam o trabalho do programador, que simplesmente declara uma variável ou constante de um determinado tipo, evitando que defina explicitamente as características de cada variável ou constante declarada no programa. Todas as linguagens de programação .NET são baseadas no Common Type System (Sistema de Tipo Comum) do .NET Framework. O Common Type System fornece tipos unificados para todas as linguagens .NET (DEL SOLE, 2010). Segundo Balena (2010), os milhares de tipos suportados pelo .NET Framework podem ser agrupados em duas amplas categorias: Tipos de valor (value types) Tipos de referência (reference types) Os tipos de valor definem variáveis ou constantes que armazenam os valores. Os valores destes tipos são armazenados em uma área de memória chamada Stack (pilha). Os tipos de valor da linguagem VB 2010 são: booleano, numéricos, Char, Date, Structure e Enum. Os tipos de referência definem variáveis ou constantes, conhecidas como ponteiros, que armazenam os endereços iniciais de memória onde estão armazenados os valores, ou seja, armazenam endereços iniciais de memória que fazem referência aos valores (apontam para os valores). Desta forma, os ponteiros são variáveis que armazenam endereços de memória. De acordo com Balena (2010), os ponteiros são armazenados na Stack, enquanto que os valores referenciados pelos ponteiros são armazenados em uma área de memória chamada Heap gerenciado. Esta área é gerenciada pelo CLR, que determina quando deve realizar DESENVOLVIMENTO DE SOFTWARE 12 o processo conhecido como coleta de lixo que libera as posições de memória ocupadas por valoresque deixaram de ser referenciadas pelos ponteiros após a destruição destes. Os tipos de referência da linguagem VB 2010 são: String, arrays e classes. TIPO BOOLEANO A tabela mostra as características do tipo booleano. Permite definir variáveis ou constantes do tipo booleano (lógico) que podem assumir dois valores: True ou False, que representam dados que podem ter dois estados possíveis como, por exemplo, verdadeiro ou falso, ligado ou desligado, aberto ou fechado etc. O valor default, isto é, o valor padrão após a declaração da variável sem atribuição de um valor pelo programador de uma variável do tipo Boolean é False. TIPOS DE NÚMEROS A tabela mostra as características dos tipos de números inteiros definidos na linguagem VB 2010. DESENVOLVIMENTO DE SOFTWARE 13 Cada tipo de números inteiros permite declarar variáveis ou constantes que ocupam um determinado espaço de memória e armazenam números inteiros de uma determinada faixa de valores. O programador deve escolher o tipo que ocupe a menor quantidade de memória em bytes e seja capaz de armazenar a faixa de valores possíveis de um determinado dado a ser armazenado em uma variável ou constante. Esta abordagem permite otimizar o programa, tendo em vista que as variáveis ocupam somente os espaços de memória necessários e suficientes e consumem menos tempo e recursos, como pilha e registradores, para processamento. Por exemplo, vamos supor a necessidade de se declarar uma variável para armazenar a quantidade de filhos de uma pessoa. Neste caso, basta declarar uma variável do tipo Byte que DESENVOLVIMENTO DE SOFTWARE 14 ocupa apenas um byte e permite armazenar valores de 0 a 255. Uma variável do tipo Byte seria suficiente para armazenar a idade de uma pessoa em anos, a quantidade de dias em um mês, a quantidade de meses em um ano etc. O tipo Single define números de ponto flutuante com precisão até a sexta casa decimal. O tipo Double define números de ponto flutuante com o dobro de dígitos significativos em relação ao tipo Single ou com precisão até a décima casa decimal, que evita os erros de arredondamento que podem acontecer com números do tipo Single. Desta forma, o tipo Double é indicado para números utilizados em aplicações científicas, financeiras ou de engenharia. O tipo Decimal define números inteiros de 12 bytes ou números com 0 a 28 casas decimais. O valor default das variáveis de tipos de números é zero. TIPOS DE CARACTERES A tabela mostra as características dos tipos de caracteres definidos na linguagem VB 2010. Como os computadores processam números, os caracteres são codificados em números. Existem vários padrões de codificações de caracteres como, por exemplo, a DESENVOLVIMENTO DE SOFTWARE 15 codificação ASCII que representa os caracteres com 1 byte, portanto limitado a 256 caracteres. Para suportar línguas com maior quantidade de caracteres, o Consórcio Unicode promove e mantém o padrão de codificação Unicode que independe de plataforma, programa e linguagem. O padrão Unicode é adotado pelas principais empresas de TI como Apple, HP, IBM, Microsoft. Oracle, SAP, Unisys etc. (UNICODE, 2010). O tipo Char define variáveis ou constantes que armazenam o código de 2 bytes de um caracter na codificação Unicode. O valor default de uma variável do tipo Char é zero. O tipo String define um ponteiro para uma cadeia de caracteres codificados em Unicode. A cadeia de caracteres pode ter até aproximadamente 231 caracteres. O valor default do ponteiro deste tipo é Nothing, isto é, sem endereço. TIPOS DIVERSOS A tabela mostra as características dos outros tipos definidos na linguagem VB 2010. DESENVOLVIMENTO DE SOFTWARE 16 O tipo Date define variáveis ou constantes que armazenam data, horário ou data e horário. O formato padrão é m/d/ aaaa delimitado pelo caracter # como, por exemplo, #3/4/1998# que representa a data 4 de março de 1998. O valor default de uma variável ou constante deste tipo é 00:00:00 (meia noite) de 1 de janeiro de 0001. O tipo Object define um ponteiro que armazena o endereço de referência a qualquer valor ou objeto. O valor default do ponteiro deste tipo é Nothing, isto é, sem endereço. O tipo Structure permite que o programador defina estruturas com membros de diferentes tipos. DECLARAÇÃO DE VARIÁVEL DESENVOLVIMENTO DE SOFTWARE 17 ATRIBUIÇÃO DE VALOR A atribuição de um valor é feita através do sinal de igual, conforme a sintaxe a seguir: Nome = valor O exemplo a seguir atribui o valor 5 à variável Idade. Idade = 5 O exemplo a seguir atribui o literal "Av. Presidente Vargas" à variável Endereço. DESENVOLVIMENTO DE SOFTWARE 18 Endereço = "Av. Presidente Vargas" DECLARAÇÃO DE CONSTANTE E ATRIBUIÇÃO DE VALOR A declaração de uma constante é feita através da palavra- chave reservada Const e a atribuição de um valor é feita com sinal de igual, conforme a seguinte sintaxe: A linguagem VB 2010 tem constantes predefinidas que podem ser conhecidas acessando Uma constante deve ter o seu valor atribuído na sentença de declaração. O exemplo a seguir declara uma constante de nome Versão do tipo Decimal com valor igual a 1.0 e outra constante de nome PI do tipo Double com valor igual a 3.1415. CARACTERES DE TIPO DE LITERAL Alguns valores literais podem ser compatíveis com diferentes tipos como, por exemplo, "A" pode ser do tipo Char ou String e o valor literal 1 pode ser do tipo Byte, SByte, Short, UShort, Integer, UInteger, Long ou ULong. DESENVOLVIMENTO DE SOFTWARE 19 Os caracteres do tipo de literal (literal type characters) permitem que você especifique explicitamente os tipos de literais para o compilador, conforme mostra a tabela. OPERADORES BÁSICOS Os operadores básicos da linguagem VB 2010 podem ser agrupados nas seguintes categorias: OPERADORES ARITMÉTICOS A tabela mostra os operadores aritméticos da linguagem VB 2010. DESENVOLVIMENTO DE SOFTWARE 20 OPERADORES DE CONCATENAÇÃO A tabela mostra os operadores de concatenação da linguagem VB 2010. OPERADORES DE DESLOCAMENTO DE BITS A tabela mostra os operadores de deslocamento da linguagem VB 2010. OPERADORES DE ATRIBUIÇÃO DESENVOLVIMENTO DE SOFTWARE 21 A tabela mostra os operadores de atribuição da linguagem VB 2010. OPERADORES DE COMPARAÇÃO A tabela mostra os operadores de comparação da linguagem VB 2010. DESENVOLVIMENTO DE SOFTWARE 22 OPERADORES LÓGICOS A tabela mostra os operadores lógicos da linguagem VB 2010. DESENVOLVIMENTO DE SOFTWARE 23 http://msdn.microsoft.com/pt-br/library/sh9ywfdk.aspx http://msdn.microsoft.com/pt-br/library/dd409611.aspx PALAVRAS-CHAVE RESERVADAS As seguintes palavras-chave são reservado, que significa que você não pode usá-los como nomes dos elementos, como variáveis ou procedimentos de programação. Você pode ignorar essa restrição colocando o nome entre colchetes ([]). Para mais informações, consulte "Nomes DESENVOLVIMENTO DE SOFTWARE 24 Escapados" em Nomes de elementos declarados (Visual Basic). NoteNote Note Note We do not recommend that you use escaped names, because it can make your code hard to read, and it can lead to subtle errors that can be difficult to find. We do not recommend that you use escaped names, because it can make your code hard to read, and it can lead to subtle errors that can be difficult to find. We do not recommend that you use escaped names, because it can make your code hard to read, and it can lead to subtle errors that can be difficult to find. We do not recommend that you use escaped names, because it can make your code hard to read, and it can lead to subtle errors that can be difficult to find. AddHandle r AddressOf Alias AndAnd AndAlso As Boolean ByRefByRef Byte ByVal Call CaseCase Catch CBool CByte CCharCChar CDate CDbl CDec CharChar CInt C l a s s Constraint C l a s s Statement CLngCLng CObj Const Continue CSByteCSByte CShort CSng CStr CTypeCType CUInt CULng CUShort DateDate Decimal Declare Default DelegateDelegate Dim DirectCast Do DoubleDouble Each Else ElseIf End StatementEnd Statement E n d <keyword > EndIf Enum EraseErase Error Event Exit FalseFalse Finally F o r ( i n For…Next) F o r E a c h … Next FriendFriend Function Get GetType GetXMLNamespa ce GetXMLNamespa ce Global GoSub GoTo HandlesHandles If If() Implements I m p l e m e n t s Statement I m p l e m e n t s Statement DESENVOLVIMENTO DE SOFTWARE 25 I m p o r t s ( . N E T Namespac e a n d Type) I m p o r t s ( X M L Namespace ) In I n ( G e n e r i c Modifier) I n ( G e n e r i c Modifier) Inherits Integer Interface IsIs IsNot Let Lib LikeLike Long Loop Me ModMod Module M o d u l e Statement MustInherit MustOverrideMustOverride MyBase MyClass Namespace NarrowingNarrowing N e w Constraint N e w Operator Next N e x t ( i n Resume) N e x t ( i n Resume) Not Nothing NotInheritable NotOverridableNotOverridable Object Of On OperatorOperator Option Optional Or OrElseOrElse O u t ( G e n e r i c Modifier) Overloads Overridable OverridesOverrides ParamArra y Partial Private PropertyProperty Protected Public RaiseEvent ReadOnlyReadOnly ReDim REM RemoveHandl er ResumeResume Return SByte Select SetSet Shadows Shared Short SingleSingle Static Step Stop StringString Structure Constraint St ructure Statement Sub SyncLockSyncLock Then Throw To TrueTrue Try TryCast TypeOf…Is UIntegerUInteger ULong UShort Using VariantVariant Wend When While WideningWidening With WithEvents WriteOnly XorXor #Const #Else #ElseIf #End#End #If = & &=&= DESENVOLVIMENTO DE SOFTWARE 26 * *= / /=/= \ \= ^ ^=^= + += - -=-= > > Ope ra to r ( V i s u a l Basic) > > = O p e r a t o r ( V i s u a l Basic) << <<=<<= Note EndIf , GoSub, Variant, and Wend are retained as reserved keywords, although they are no longer used in Visual Basic. The meaning of the Letkeyword has changed. Let is now used in LINQ queries. For more information, see Let Clause (Visual Basic). Unreserved Keywords The following keywords are not reserved, which means you can use them as names for your programming elements. However, doing this is not recommended, because it can make your code hard to read and can lead to subtle errors that can be difficult to find. Aggregate Ansi Assembly Async Auto Await Binary Compare Custom Distinct Equals Explicit From G r o u p By Group Join Into IsFalse IsTrue Iterator Join Key (Visual Basic) Mid Off Order By Preserve Skip Skip While Strict Take T a k e While Text Unicode Until Where Yield #ExternalSource #Region Nesta aula, você: • Conheceu o histórico da linguagem Visual Basic; • Conheceu as palavras-chave da linguagem VB 2010; DESENVOLVIMENTO DE SOFTWARE 27 • Aprendeu como se faz comentários em linguagem VB 2010; • Aprendeu o que é um comentário, uma variável e uma constante; • Aprendeu os tipos da linguagem VB 2010; • Aprendeu como se faz uma declaração de uma variável ou constante e a atribuição de um valor em linguagem VB 2010; • Aprendeu quais são os operadores da linguagem VB 2010. REGISTRO DE PARTICIPAÇÃO 1.Qual é o tipo de linguagem VB 2010 devemos usar para declarar uma variável que armazena a quantidade de páginas de um livro, sabendo-se que um livro tratado pelo software a ser desenvolvido pode ter até 1500 páginas? 1) SByte 2) Short 3) UShort 4) Integer 5) UInteger 2. Qual é o tipo de literal da linguagem VB 2010 que devemos utilizar para especificar valores do tipo Double? 1) D 2) F 3) L 4) R 5) S 3. Qual é o operador da linguagem VB 2010 que devemos usar para obter a parte inteira do resultado da divisão? 1) / 2) \ 3) Mod DESENVOLVIMENTO DE SOFTWARE 28 4) ^ 5) >> 4. Qual será o valor da variável Resultado após a execução da linha de código em linguagem VB 2010? Dim Resultado As Integer = 14 Mod 3 1) 1 2) 2 3) 3 4) 5 5) 11 DESENVOLVIMENTO DE SOFTWARE 29 AULA 3 PROGRAMAÇÃO MODULAR Nesta aula, você irá: 1.Módulos; 2.Módulos predefinidos; 3.Métodos; 4.Encadeamento de métodos; 5.Escopo; 6.Escopo de uma variável; 7.Escopo de um método; 8.Sub-rotinas; 9.Funções; 10.Funções internas; 11.Funções de conversão de tipos; 12.Funções de manipulação de string; 13.Funções matemáticas. DESENVOLVIMENTO DE SOFTWARE 30 Módulos Prédefinidos CRIANDO UM MÓDULO DESENVOLVIMENTO DE SOFTWARE 31 DESENVOLVIMENTO DE SOFTWARE 32 MÉTODOS Um método, também conhecido como procedimento, é um bloco de códigos identificado por um nome. Um método é chamado pelo nome para que execute o bloco de código. Um módulo tem um ou mais métodos.Vantagens: • Eliminação de redundância de códigos que precisam ser executados mais de uma vez na aplicação. • Possibilidade de reaproveitamento dos métodos entre diferentes aplicações. • Possibilidade de modularização de código da aplicação, tornando-o mais legível. Possibilidade de que partes do código de uma aplicação sejam desenvolvidas em paralelo por mais de um p r o g r a m a d o r. DESENVOLVIMENTO DE SOFTWARE 33 DESENVOLVIMENTO DE SOFTWARE 34 DESENVOLVIMENTO DE SOFTWARE 35 DESENVOLVIMENTO DE SOFTWARE 36 DESENVOLVIMENTO DE SOFTWARE 37 Um método pode chamar outro método permitindo assim que métodos mais especializados sejam criados para aumentar a coesão. DESENVOLVIMENTO DE SOFTWARE 38 ESCOPO O escopo define a acessibilidade de umavariável ou método. ESCOPO DE UMA VARIÁVEL Em geral, as variáveis são declaradas com a palavra- chave Dim e, desta forma, são acessíveis apenas dentro do método em que foram declaradas. As variáveis podem ser declaradas fora do método, usando-se a palavra-chave Private ou Public para que sejam acessadas (compartilhadas) por mais de um método. As variáveis Public são acessíveis por todos os métodos da aplicação. Elas são conhecidas como variáveis globais. As variáveis Private são acessíveis apenas pelos métodos situados dentro do mesmo módulo ou da mesma classe onde foram declaradas. DESENVOLVIMENTO DE SOFTWARE 39 ESCOPO DE UM MÉTODO Um método Public pode ser chamado de qualquer parte da aplicação. Este é o default se você não definir a acessibilidade. Um método Private pode ser chamado apenas pelos métodos situados dentro do mesmo módulo ou da mesma classe onde foram definidos. DESENVOLVIMENTO DE SOFTWARE 40 FUNÇÕES INTERNAS A linguagem VB 2010 tem várias funções internas predefinidas que podem ser usadas pela sua aplicação. As funções internas são classificadas em: Funções deConversão de Tipos Funções de Manipulação de String Funções Matemáticas FUNÇÕES DE CONVERSÃO DE TIPOS DESENVOLVIMENTO DE SOFTWARE 41 FUNÇÕES DE MANIPULAÇÃO DE STRING DESENVOLVIMENTO DE SOFTWARE 42 DESENVOLVIMENTO DE SOFTWARE 43 DESENVOLVIMENTO DE SOFTWARE 44 FUNÇÕES MATEMÁTICAS Nesta aula, você: • Aprendeu o que são os módulos da linguagem Visual Basic 2010, o que é um método da linguagem Visual Basic 2010 e sobre encadeamento de métodos da linguagem Visual Basic 2010 • Conheceu os módulos predefinidos da linguagem Visual Basic 2010, as funções de manipulação de strings da linguagem Visual Basic 2010 e conheceu as funções matemáticas da linguagem Visual Basic 2010. DESENVOLVIMENTO DE SOFTWARE 45 REGISTRO DE PARTICIPAÇÃO 1. Qual é o módulo predefinido da linguagem VB 2010 que contém membros para obter informações sobre a versão do interpretador de script? 1) Constants. 2) FileSystem. 3) Globals. 4) Information. 5) Strings. 2. Quais são os delimitadores de um método da linguagem VB 2010 que retorna um valor? 1) Module e End Module. 2) Sub e End Sub. 3) Function e End Function. 4) Main e End Main. 5) Begin e End. 3. Qual é a função interna da linguagem VB 2010 que retorna o número de caracteres em uma string ou a quantidade de bytes necessários para armazenar uma expressão de um tipo? 1) LCase. 2) Left. 3) Len. 4) LSet. 5) LTrim. 4. Qual será o valor da variável Resultado após a execução da linha de código em linguagem VB 2010? Dim Resultado As String = Mid("ABCDEF", 2, 3) 1) "BC". 2) "BCD". 3) "CD". 4) "ABC". 5) "AB". DESENVOLVIMENTO DE SOFTWARE 46 AULA 4 PROGRAMAÇÃO ESTRUTURADANesta aula você irá aprender sobre: 1.Estrutura de controle de decisão simples; 2.Estrutura de controle de decisão estendida; 3.Estrutura de controle de decisão aninhada; 4.Estrutura de controle de decisão em seqüência na mesma linha; 5.Estrutura de controle de múltiplas decisões (escolha); 6.Estrutura de controle de repetição controlada por contador (para); 7.Estrutura de controle de repetição While (enquanto); 8.Estrutura de controle de repetição Do (faça). PROGRAMAÇÃO ESTRUTURADA A linguagem VB 2010 possui estruturas de controle de fluxo que permitem o desenvolvimento de programas estruturados, que são programas e que não fazem uso da instrução GoTo. E desta forma, são mais fáceis de codificar, compreender e manter (BALENA, 2006). ESTRUTURAS DE CONTROLE DE FLUXO As estruturas de controle de fluxo suportadas pela linguagem VB 2010 são (MSDN, 2010): 1. Estrutura de controle de decisão simples 2. Estrutura de controle de decisão estendida 3. Estrutura de controle de decisão aninhada 4. Estrutura de controle de decisão em seqüência na mesma linha. 5. Estrutura de controle de múltiplas decisões (escolha) 6. Estrutura de controle de repetição controlada por contador (para) 7. Estrutura de controle de repetição While (enquanto) 8. Estrutura de controle de repetição Do (faça) ESTRUTURAS DE CONTROLE DE DECISÃO SIMPLES DESENVOLVIMENTO DE SOFTWARE 47 A estrutura de controle de decisão simples (se-então- fim_se) permite executar um bloco de código em função da avaliação de uma expressão lógica, chamada também de condição, condição booleana, condição lógica ou expressão booleana. A sintaxe da estrutura de controle de decisão simples em linguagem VB 2010 é: If <condição> Then <bloco de código_Verdade> End If Onde o bloco de código somente será executado se a condição for verdadeira (True). Exemplo Dim n1 As Integer = 20 IF n1 > 10 Then Console.WriteLine(“Número maior que 10) End If O exemplo ConsoleApplication4-1.sln, apresentado a seguir, exibe a pergunta "É sustentável (s/n)? ", obtém a entrada de dados que é atribuída na variável Sustentável. Se o valor da variável Sustentável for igual a "s", exibe "Parabéns!". ESTRUTURAS DE CONTROLE DE DECISÃO ESTENDIDA DESENVOLVIMENTO DE SOFTWARE 48 A sintaxe da estrutura de controle de decisão estendida (se-então-senão-fim_se) em linguagem VB 2010 é: If <condição> Then <bloco de código_Verdade> Else <bloco de código_Falso> End If Onde o bloco de código 1 será executado se a condição for verdadeira (True) e o programa continuará depois do End If, senão o bloco de código 2 será executado. Desta forma, um dos blocos será executado em função do valor (True ou False) da condição. Exemplo : Receber um número e informar se é Par ou Ímpar. Sub Main() Dim n1 As Integer Console.WriteLine(“Numero”) n1 = Console.ReadLine() IF n1 mod 2 = 0 Then Console.WriteLine(“Número é Par”) Else Console.WriteLine(“Número é Ímpar”) End If Console.ReadKey() End Sub ESTRUTURAS DE CONTROLE DE DECISÃO ANINHADA A linguagem VB 2010 suporta várias estruturas de decisão aninhadas na sintaxe condensada, que equivale à estrutura de controle de múltiplas decisões (escolha), conforme apresentada a seguir: If <condição 1> Then DESENVOLVIMENTO DE SOFTWARE 49 <bloco de código_1> Else If <condição 2> Then <bloco de código_2> Else <bloco de código_Falso> End If End If Exemplo : Receber a idade de uma pessoa e informar se é Criança, Adolescente, Adulto ou Idoso. Sub Main() Dim idade As Byte Console.WriteLine(“Idade: ”) Idade = Console.ReadLine() IF idade < 12 Then Console.WriteLine(“Criança”) ElseIF idade < 18 Then Console.WriteLine(“Adolescente”) ElseIF idade <= 60 Then Console.WriteLine(“Adulto”) Else Console.WriteLine(“Idoso”) End If Console.ReadKey() End Sub DECISÃO EM SEQUÊNCIA A linguagem VB 2010 permite expressar uma instrução de controle de decisão em uma única linha, conforme a sintaxe a seguir: If <condição 1> Then <instrução 1> Else <instrução_2> Exemplo : Receber um número e informar se é positivo ou negativo (Considere 0 como positivo). Sub Main()Dim n1 As Integer Console.WriteLine(“Número: ”) DESENVOLVIMENTO DE SOFTWARE 50 n1 = Console.ReadLine() IF n1 < 0 Then Console.WriteLine(“Negativo”) Else Console.WriteLine(“Positivo”) Console.ReadKey() End Sub O ramo verdadeiro (True) ou falso (Else) pode ser composto de mais de uma instrução separadas por dois pontos, conforme a sintaxe a seguir: If (condição 1) Then instrução 1 : instrução 2 Else instrução 3 : instrução 4 ESTRUTURA DE CONTROLE DE MÚLTIPLAS DECISÕES (ESCOLHA) Select Case (condição) Case valor ou intervalo de valores ou lista de valores 1 Bloco de código 1 Case valor ou intervalo de valores ou lista de valores 2 Bloco de código 2 ... Case Else Bloco de código N End Select Onde o intervalo de valores é definido usando-se a palavra To na forma valor inicial To valor final e a lista de valores é definida com os valores separados por vírgula na forma valor1, valor2,.., valor n. O exemplo ConsoleApplication4-5.sln, apresentado a seguir, é o exemplo ConsoleApplication4-3.sln que usa estrutura de decisão aninhadas, modificado para fazer uso da instrução Select Case. DESENVOLVIMENTO DE SOFTWARE 51 DEFININDO INTERVALO DE VALORES Valor Inicial TO Valor Final Exemplo: Caso 0 TO 9 Definindo Lista de Valores Separa por Vírgula (,) Exemplo: Caso 0, 1 , 2 Repetição - For For contador = valor inicial To valor final Bloco de código Next contador EXEMPLO Sub Main() Dim i As Byte For i = 1 To 10 Console.WriteLine(i) Next i Console.ReadKey() End Sub A variável do contador(i) é incrementada em 1 por default cada vez que o laço é percorrido. DESENVOLVIMENTO DE SOFTWARE 52 O incremento pode ser alterado usando-se a palavra Step (passo), conforme a sintaxe a seguir: For contador = valor inicial To valor final Step incremento <Bloco de instrução> Next contador EXEMPLO Sub Main() Dim i As Byte For i = 1 To 10 Step 2 Console.WriteLine(i) Next i Console.ReadKey() End Sub ESTRUTURA DE CONTROLE DE REPETIÇÃO CONTROLADA POR CONDIÇÃO (ENQUANTO) A estrutura de controle de repetição While (enquanto) executa o bloco de código enquanto a condição for verdadeira (True). •Esta estrutura necessita que uma instrução de inicialização da variável da condição seja definida antes do laço •E uma instrução de alteração da variável da condição seja definida dentro do laço para que o laço (loop) não seja repetido infinitamente. A sintaxe da estrutura de controle de repetição While é: While (condição) Bloco de instrução End While Exemplo x = 1 y = 5 DESENVOLVIMENTO DE SOFTWARE 53 While (x < y) x = x + 2 y = y + 1 End While Sub Main() Dim N1 As Integer Dim x As Integer = 0 Console.Write("Digite um número: ") N1 = Console.ReadLine While (n1 <> 0) x = x + 1 Console.Write("Digite um número: ") N1 = Console.ReadLine End While Console.Write(“Quantidade de números Digitados: “ & x) Console.ReaKey() End Sub ESTRUTURA DE CONTROLE DE REPETIÇÃO DO (FAÇA) A linguagem VB 2010 suporta duas opções de sintaxe para definir a estrutura de controle de repetição Do (faça). Ambas as sintaxes necessitam: ✦que uma instrução de inicialização da variável da condição seja definida antes do laço ✦e uma instrução de alteração da variável da condição seja definida dentro do laço para que o laço (loop) não seja repetido infinitamente. Opção 1 instrução de inicialização da variável da condição Do While ou Until (condição) <bloco instrução com instrução de alteração da variável da condição> Loop Opção 2 instrução de inicialização da variável da condição Do DESENVOLVIMENTO DE SOFTWARE 54 <bloco instrução com instrução de alteração da variável da condição> Loop While ou Until (condição) A sintaxe da opção 1 define um laço (loop) que poderá não ser executado ou repetido várias vezes (0 a n vezes). Enquanto a sintaxe da opção 2 define um laço (loop) que será repetido uma (pelo menos) a várias vezes (1 a n vezes). Quando o While é utilizado, o laço será repetido enquanto a condição for verdadeira (True). Quando o Until é utilizado, o laço será repetido até que a condição seja falsa (False). EXEMPLO Sub Main() Dim contador As Byte = 1 ‘ instrução de inicialização Do While (contador <= 10) Console.WriteLine(contador) ‘ instrução de alteração da variável da condição Contador = Contador + 1 Loop Console.ReadKey() End Sub Sub Main() Dim contador As Byte = 1 ‘ instrução de inicialização Do Console.WriteLine(contador) ‘ instrução de alteração da variável da condição Contador = Contador + 1 Loop While (contador <= 10) Console.ReadKey() End Sub Nesta aula, você: • Aprendeu sobre a estrutura de controle de decisão simples em linguagem VB 2010. DESENVOLVIMENTO DE SOFTWARE 55 • Aprendeu sobre a estrutura de controle de decisão estendida em linguagem VB 2010. • Aprendeu sobre a estrutura de controle de decisão aninhada em linguagem VB 2010. • Aprendeu sobre a estrutura de controle de decisão em seqüência na mesma linha em linguagem VB 2010. • Aprendeu sobre a estrutura de controle de múltiplas decisões (escolha) em linguagem VB 2010. • Aprendeu sobre a estrutura de controle de repetição controlada por contador (para) em linguagem VB 2010. • Aprendeu sobre a estrutura de controle de repetição While (enquanto) em linguagem VB 2010. • Aprendeu sobre a estrutura de controle de repetição Do (faça) em linguagem VB 2010. REGISTRO DE PARTICIPAÇÃO 1. Qual é a instrução para definir uma estrutura de decisão de múltiplas decisões (escolha) em linguagem VB 2010? 1) If 2) Select Case 3) For 4) While 5) Do 2. Qual é a instrução para definir uma estrutura de repetição de zero a várias (0 a n) vezes em linguagem VB 2010? 1) If 2) Select Case 3) For 4) While 5) Do DESENVOLVIMENTO DE SOFTWARE 56 3.O programa a seguir exibirá os números. Module Module1 Sub Main() Dim Contador As Byte = 1 ' instrução de incialização Do Until Not (Contador <= 10) Console.WriteLine(Contador) ' instrução de alteração da variável da condição Contador = Contador + 2 Loop Console.ReadKey() End Sub End Module 1) 1, 3 2) 1, 3, 5 3) 1, 3, 5, 7 4) 1, 3, 5, 7, 9 DESENVOLVIMENTO DE SOFTWARE 57 AULA 5 TRATAMENTO DE EXCEÇÕES Nesta aula você irá aprender sobre: 1.Exceções. 2.Tratamento de Exceções Estruturadas. 3.Tipos de Exceção. 4.Bloco Try... End Try. 5.A seção Catch. 6.Blocos Try... End Try Aninhados. 7.A seção Finally. 8.Lançamento de Exceções. Exceção Exceção é um erro no fluxo normal de execução do código de um programa de uma aplicação. O.NET framework oferece uma forma unificada de identificar e tratar exceções entre todas as linguagens de programação .NET (BALENA, 2006). Há dois tipos de exceções: exceções de hardware e exceções de software. As exceções de hardware são causadas por erros do programa no que se refere a hardware como, por exemplo, violação de acesso a endereçosde memória. Enquanto as exceções de software são causadas por erros do programa no que se refere a software como, por exemplo, atribuir um valor incompatível a uma variável ou divisão por zero (MACKENZIE e SHARKEY, 2003). Tratamento de Exceções Estruturadas •O tratamento de exceções estruturadas (Structured Exception Handling - SEH) é uma estratégia para codificar o programa de uma aplicação para tratar tanto as exceções de hardware quanto as exceções de software. •Dessa forma, o código para tratamento de exceções se torna unificado e mais consistente por tratar tanto as exceções de hardware quanto as exceções de software. DESENVOLVIMENTO DE SOFTWARE 58 •seções do código que estiverem propensas a gerarem exceções como, por exemplo, cálculos, acesso a banco de dados, operações com arquivos etc. (MACKENZIE e SHARKEY, 2003). Tipos de Exceções O s t i p o s d e e x c e ç õ e s d e r i v a m d a c l a s s e System.Exception que é definida no .NET framework. • Os principais tipos de exceções são: – ArgumentException – ArgumentNullException – ArgumentOutOfRangeException – IndexOutOfRangeException – NotImplementedException – OutOfMemoryException – OverflowException – FileNotFoundException Os tipos de exceções derivam da classe System.Exception que é definida no .NET framework. Bloco Try ... End Try As palavras-chave Try... End Try delimitam o bloco de códigos protegidos para tratar as exceções que ocorrerem, onde Try delimita o início do bloco e End Try delimita o final do bloco. Sintaxe: Try ... Catch ex As Exception ... End Try DESENVOLVIMENTO DE SOFTWARE 59 Cath: •Marca a seção do bloco que captura e trata as exceções que podem eventualmente ocorrer. •Em geral, usa-se uma seção Catch para capturar cada tipo de exceção e uma seção Catch, chamada genérica, no final para capturar todos os demais tipos de exceções que não foram capturados pelas seções Catch anteriores. Sintaxe: Try ... Catch ex1 As Exception1 ' Código para tratamento da Exception1 ... Catch exN As ExceptionN ' Código para tratamento da ExceptionN ... ' Captura Genérica Catch ex As Exception ' Código para tratamento das demais exceções ... End Try Exemplo: Sem Captura e Tratamento de Exceção Sub Main() Dim i As Decimal = 10 Dim j As Decimal = 0 Dim Resultado As Decimal Resultado = i / j Console.ReadKey() End Sub DESENVOLVIMENTO DE SOFTWARE 60 Exemplo: Com Captura e Tratamento de Exceção Sub Main() Dim i As Decimal = 10 Dim j As Decimal = 0 Dim Resultado As Decimal Try Resultado = i / j Catch ex As Exception ' Captura Genérica Console.WriteLine("Houve um erro de exceção de divisão por zero.") End Try Console.ReadKey() End Sub DESENVOLVIMENTO DE SOFTWARE 61 Permite realizar a captura e o tratamento da exceção genérica, ou seja, de qualquer tipo de exceção. Exemplo: Com Captura e Tratamento de Exceção Sub Main() Dim i As Decimal = 10 Dim j As Decimal = 0 Dim Resultado As Decimal Try Resultado = i + 10 Resultado = i / j Catch exDivideByZero As DivideByZeroException ‘ Captura DivideByZeroException Console.WriteLine("Houve um erro de exceção de divisão por zero.") Catch ex As Exception ' Captura Genérica Console.WriteLine("Houve um erro de exceção genérica.") End Try Console.ReadKey() End Sub Permite realizar a captura e o tratamento da Divisão por Zero e capturar e tratar uma exceção genérica, ou seja, de qualquer tipo de exceção. Bloco Try ... End Try - Aninhado Define um bloco Try...End Try externo que contém um outro bloco Try...End Try interno. Imports System.IO Module Module1 Sub Main() Dim FileName As String = "TestFile.data" ' Bloco externo Try Dim fs As New FileStream(FileName, FileMode.Open, FileAccess.Read) ' Bloco interno Try DESENVOLVIMENTO DE SOFTWARE 62 Dim reader As New BinaryReader(fs) reader.ReadInt32() Catch ex As Exception Console.WriteLine("Exceção na leitura do arquivo.") End Try Catch ex As Exception Console.WriteLine("Exceção na abertura do arquivo.") End Try Console.ReadKey() End Sub End Module Se ocorrer uma exceção na abertura do arquivo, o programa exibe a mensagem "Exceção na abertura do arquivo." e se após a abertura do arquivo sem exceção, ocorrer uma exceção na leitura do arquivo, o programa exibe a mensagem "Exceção na leitura do arquivo.“ A seção Finally A seção Finally define o código que deverá ser sempre executado, sem ou com a ocorrência de uma exceção, antes de terminar o bloco Try...End Try. Em geral, contém o código para liberar recursos alocados no bloco Try...End Try ou o código comum a ser executado antes de terminar o bloco Try...End Try. O exemplo ConsoleApplication5-5.sln, apresentado a seguir, é o exemplo ConsoleApplication5-3.sln modificado para conter a seção Finally que sempre emite um sinal sonoro, Beep(), antes de terminar o bloco Try...End Try. DESENVOLVIMENTO DE SOFTWARE 63 Sub Main() Dim i As Decimal = 10 Dim j As Decimal = 0 Dim Resultado As Decimal Try i = i + 10 Resultado = i / j Catch exDivideByZero As DivideByZeroException ' Captura DivideByZeroException Console.WriteLine("Houve um erro de exceção de divisão por zero.") Catch ex As Exception ' Captura Genérica Console.WriteLine("Houve um erro de exceção genérica.") Finally Beep() End Try Console.ReadKey() End Sub Lançamento de Exceções Em algumas situações você pode desejar lançar uma exceção para esta seja tratada por uma rotina de tratamento de exceção ou para gerar uma exceção. A sintaxe da declaração do lançamento da exceção é: Throw [ expressão ] O exemplo ConsoleApplication5-2.sln, apresentado a seguir, é o exemplo ConsoleApplication5-1.sln modificado para lançar uma exceção genérica com a mensagem "Divisor j igual a zero" se o valor da variável j for igual a zero. Como a variável j é declarada e inicializada com valor igual a zero, o programa lança a exceção, que é capturada pela seção Catch, a qual exibe a mensagem "Ocorreu uma exceção: Divisor j igual a zero.", conforme mostra a imagem. DESENVOLVIMENTO DE SOFTWARE 64 Exemplo: Lançamento de Exceção Sub Main() Dim i As Decimal = 10 Dim j As Decimal = 0 Dim Resultado As Decimal Try i = i + 10 If (j = 0) Then Throw New System.Exception("Divisor j igual a zero.") End If Resultado = i / j Catch ex As Exception ' Captura Genérica Console.WriteLine("Houve um erro de exceção de divisão por zero.") Finally Beep() End Try Console.ReadKey() End Sub Lançar uma exceçãogenérica com a mensagem "Divisor j igual a zero" se o valor da variável j for igual a zero. DESENVOLVIMENTO DE SOFTWARE 65 Nesta aula, você: •Aprendeu sobre as Exceções. •Aprendeu sobre o Tratamento de Exceções Estruturadas. •Aprendeu sobre os principais Tipos de Exceções da linguagem VB 2010. •Aprendeu como programar o Bloco Try... End Try em linguagem VB 2010. •Aprendeu como programar a Seção Catch em linguagem VB 2010. •Aprendeu como programar os Blocos Try... End Try Aninhados em linguagem VB 2010. •Aprendeu como programar a Seção Finally em linguagem VB 2010. •Aprendeu como programar o lançamento de Exceções em linguagem VB 2010. REGISTRO DE PARTICIPAÇÃO 1. Qual é a palavra-chave usada para definir uma seção de captura e tratamento de exceção em linguagem VB 2010? 1) If 2) Catch 3) Try 4) Finally 5) Do 2. Qual é a palavra-chave usada para definir uma seção de código que é sempre executada antes de terminar o bloco Try...End Try em linguagem VB 2010? 1) If 2) Select Case 3) Catch 4) Throw 5) Finally DESENVOLVIMENTO DE SOFTWARE 66 3. Qual é a palavra-chave usada para lançar uma exceção em linguagem VB 2010? 1) Try 2) Select Case 3) Catch 4) Throw 5) Finally DESENVOLVIMENTO DE SOFTWARE 67
Compartilhar