Buscar

DS - CONTEÚDO ONLINE - Aulas de 1 a 5

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 23 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 23 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 23 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1 
 
AULA 1: INTRODUÇÃO 
 
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, 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). 
 
 
 
APPLICATIONS 
 
 
Core Windows Forms WPF 
 
ASP.NET ADO.NET LINQ 
 
Parallel FX WCF Workflow Foundation 
 
Base Class Library 
 
Common Language Runtime 
 
Windows Operating System 
 
 
 
Desta forma, um dos grandes benefícios proporcionados pelo .NET 4.0 é o aumento da produtividade no 
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). 
 
 
2 
 
 
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 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). 
 
 A Base Class Library (BCL) 
fornece milhares de tipos, 
interfaces e classes para serem 
utilizados nas aplicações. 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). 
 
Common 
Language 
Runtime 
 
 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 convertidos 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). 
 
 
 
Base 
Class 
Library 
 .NET 4.0 
.NET 
Assemblies 
 
 
 
Execução 
do Código 
 
 
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). 
 
 
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. Além destas linguagens, podem 
ser utilizadas também as linguagens dinâmicas IronRuby e IronPython.] 
 
3 
 
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): 
 
 
 
Visual Studio 
2010 Professional 
O Visual Studio 2010 Professional é indicado para profissionais que executam 
tarefas básicas de desenvolvimento. Ele simplifica a criação, depuração e 
implantação de aplicações em várias plataformas que incluem Windows, Web 
SharePoint e Azure. 
 
Visual Studio 
2010 Premium 
O Visual Studio 2010 Premium é indicado para profissionais e equipes que 
necessitem de teste automatizado da interface para usuário, de identificação do 
impacto de testes ao mudar os códigos, de geração de dados para testes e de 
simplificação no desenvolvimento de bancos de dados. 
 
Visual Studio Test 
Professional 2010 
O Visual Studio Test Professional 2010 é um conjunto de ferramentas especializado 
para equipes de controle de qualidade, que simplifica o planejamento de testes e a 
execução de testes manuais. Funciona em conjunto com as outras edições do Visual 
Studio para desenvolvedores, permitindo a colaboração efetiva entre os 
desenvolvedores e os testadores durante todo o ciclo de desenvolvimento da 
aplicação. 
 
Visual Studio 
2010 Ultimate 
O Visual Studio 2010 Ultimate é indicado para profissionais e equipes que 
necessitem de um conjunto completo de ferramentas degerenciamento de ciclo de 
vida da aplicação (Application Life Management - ALM). Permite a elaboração de 
diagramas em UML e o gerenciamento de projetos com metodologias iterativas e 
ágeis. 
 
 
 
Atenção: 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 
http://estacio.webaula.com.br/Cursos/gon117/docs/01DS_doc02.pdf 
 
 
4 
 
AULA 2: PROGRAMAÇÃO BÁSICA 
PALAVRA-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. Detalhes em 
https://msdn.microsoft.com/en-us/library/dd409611.aspx. 
 
 
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. Em 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. 
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 o processo 
conhecido como coleta de lixo que libera as posições de memória ocupadas por valores que 
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. 
 
5 
 
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. 
A tabela mostra as características do tipo booleano. 
 
Tipo Tamanho Faixa de Valores 
Boolean Depende da Plataforma True ou False 
 
TIPOS DE NÚMEROS 
 
Tipo Tamanho Faixa de valores 
Byte 1 byte 0 a 255 
Sbyte 1 byte -128 a 127 
Short 2 bytes -32.768 a 32.767 
Ushort 2 bytes 0 a 65.535 
Integer 4 bytes -2.147.483.648 a 2.147.483.647 
Uinteger 4 bytes 0 a 4.294.967.295 
Long 8 bytes -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 
Ulong 8 bytes 0 a 18.446.744.073.709.551.615 
Single (Float de precisão 
simples) 
4 bytes 
-3.4028235E+38 a -1,401298E-45 para valores negativos 
1,401298E-45 a 3,4028235E+38 para valores positivos 
Double (Float de precisão 
dupla) 
8 bytes 
-1.79769313486231570E+308 a -4,94065645841246544E-324 para valores 
negativos 
4,94065645841246544E-324 a 1,79769313486231570E+308 para valores 
positivos 
Decimal 16 bytes 
0 a +/-79.228.162.514.264.337.593.543.950.335 (sem casa decimal) 
0 a +/-7,9922816251426337593543950335 (com 28 casas decimais) 
 
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 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. 
 
6 
 
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 
 
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 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. 
 
 
Tipo Tamanho Faixa de valores 
Char 
(caracter simples) 
2 bytes 0 a 65.535 
String 
(cadeira de caracteres) 
Depende da 
plataforma 
0 a aproximadamente 2 bilhões de caracteres codificados em 
Unicode. 
 
 
 
TIPOS DIVERSOS 
 
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. 
 
 
Tipo Tamanho Faixa de valores 
Date 8 bytes 
00:00:00 (meia-noite) de 1 de janeiro de 0001 a 
11:59:50(PM) de 31 de dezembro de 9999. 
Object 
4 bytes 
em plataformas de 32 bits. 
8 bytes 
em plataformas de 64 bits. 
Valores do tipo objeto. 
Structure 
(definido pelo programador) 
Depende da plataforma 
Cada membro da estrutura tem valores definidos 
pelo respectivo tipo e independente dos demais 
membros. 
 
 
 
7 
 
DECLARAÇÃO DE VARIÁVEL 
 
A declaração de variável é feita através de palavra-chave reservada Dim, conforme a sintaxe: 
 
Dim Nome As Tipo 
 
Os nomes identificadores não devem começar com letra minúscula ou com underscore e não devem conter espaços 
ou símbolos. É usual evitar o uso de acentuação em códigos de programas de computador. O exemplo a seguir 
declara uma variável de nome Idade do tipo Byte e uma variável de nome Endereco do tipo String: 
 
Dim Idade As Byte 
Dim Endereco As String 
 
Você pode declarar, na mesma sentença, variáveis de mesmo tipo, separando os nomes por vírgula. O exemplo a 
seguir declara, na mesma sentença, duas variáveis de tipo Byte e de nomes Dia e Mes: 
 
Dim Dia, Mes As Byte 
 
Você pode declarar, na mesma sentença, variáveis de tipos diferentes, separando os nomes e os tipos por vírgula. O 
exemplo a seguir declara, na mesma sentença, uma variável de nome Numero do tipo UShort e uma variável de 
nome Complemento do tipo String: 
 
Dim Numero As UShort, Complemento As String 
 
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. 
 Endereço = "Av. Presidente Vargas" 
 
DECLARAÇÃO DE VARIÁVEL E ATRIBUIÇÃO DE VALOR 
 
 A atribuição de valor a uma variável pode ser feita na mesma sentença de sua declaração, conforma a sintaxe: 
 
Dim Nome As Tipo = valor 
 
O exemplo a seguir declara uma variável de nome Dependentes do tipo Byte que atribui o valor 1 
 
Dim Dependentes As Byte = 1 
 
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: 
 
Const Nome As Tipo = valor 
 
A linguagem VB 2010 tem constantes predefinidas que podem ser conhecidas acessando: 
https://msdn.microsoft.com/en-us/library/dy7yth1w.aspx 
 
Uma constante deve ter o seu valor atribuído na sentença de declaração. O exemplo a seguir declara uma 
constante de nome Versao do tipo Decimal com valor igual a 1.0, e outra constante de nome PI do tipo Double 
com valor igual a 3.1415. 
 
Const Versao As Decimal = 1.0 
Const PI As Double = 3.1415 
8 
 
CARACTERES DE TIPO 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. 
Os caracteres do tipo de literal (Literal Type Characters) permitem que você especifique explicitamente os tipos 
de literais para o compilador. 
 
Caracter Tipo Exemplo 
C Char "A"C 
D Decimal 98.2D 
F Single 1F 
I Integer 1I 
L Long 1L 
 
Caracter Tipo Exemplo 
R Double 1R 
S Short 1S 
UI Uinteger 1UI 
UL Ulong 1UL 
US UShort 1US 
 
 
 
OPERADORES BÁSICOS 
 
Os operadores básicos da linguagem VB 2010 podem ser agrupados nas seguintes categorias: 
 
Operadores Aritméticos 
Operador Descrição 
+ Adição 
- Subtração 
* Multiplicação 
/ Divisão 
\ Parte inteira do resultado da divisão 
Mod Resto do resultado da divisão 
^ Eleva a potência de um valor 
 
Operadores de Concatenação 
Operador Descrição 
& Concatena duas strings 
+ Concatena duas strings (equivale ao operador &) 
 
Operadores de Deslocamento de Bit 
O código a seguir apresenta exemplos do uso de operadores 
de deslocamento. 
Dim Numero As Short = 192 
' O conteúdo de Numero em bits é 0000 0000 1100 0000 
Dim Res1, Res2, Res3 As Short 
Res1 = Numero << 0 
Res2 = Numero << 4 
Res3 = Numero << 17 
' O conteúdo de Res1 é 192 (0000 0000 1100 0000) 
' O conteúdo de Res2 é 3072 (0000 1100 0000 0000) 
' O conteúdo de Res3 é 384 (0000 0001 1000 0000) 
 
 
Operador Descrição 
<< 
Desloca uma quantidade de bits a 
esquerda de um valor em bits e 
acrescenta zeros a esquerda 
>> 
Desloca uma quantidade de bits a 
direita de um valor em bits e 
acrescenta zeros a direita 
9 
 
Operadores de Atribuição 
Oper. Descrição Exemplo 
= Atribui um valor a uma variável ou constante X = Y 
+= Adiciona e atribui o valor X += Y [X = X + Y] 
-= Subtrai e atribui o valor X -= Y [X = X - Y] 
*= Multiplica e atribui o valor X *= Y [X = X * Y] 
/= Divide e atribui o valor X /= Y [X = X / Y] 
\= Divide e atribui a parte inteira do resultado da divisão X \= Y [X = X \ Y] 
^= Eleva a potência de um valor e atribui o resultado X ^= Y [X = X ^ Y] 
<<= 
Desloca uma quantidade de bits a esquerda de um valor em bits e acrescenta 
zeros a esquerda e atribui o valor 
X <<= Y [X = X << Y] 
>>= 
Desloca uma quantidade de bits a direita de um valor em bits e acrescenta zeros 
a direita e atribui o valor 
X >>= Y [X = X >> Y] 
&= Concatena e atribui o resultado X &= Y [X = X & Y] 
 
 
Operadores Lógicos 
Operador Descrição 
And Executa a operação AND (E) em duas expressões booleanas, binárias ou numéricas. 
Not Executa a operação NOT (NÃO) em duas expressões booleanas, binárias ou numéricas. 
Or Executa a operação OR (OU) em duas expressões booleanas, binárias ou numéricas. 
Xor 
Executa a operação XOR (Exclusive-OR) em duas expressões booleanas, binárias ou 
numéricas. 
AndAlso 
Executa a operação AND (E) em duas expressões booleanas, binárias ou numéricas, 
ignorando a avaliação da segunda expressão caso a primeira expressão seja False. 
OrElse 
Executa a operação OR (OU) em duas expressões booleanas, binárias ou numéricas. 
ignorando a avaliação da segunda expressão caso a primeira expressão seja True. 
 
 
 
 
10 
 
AULA 3: PROGRAMAÇÃO MODULAR 
 
MÓDULO 
 
Um módulo é um contêiner que contém membros, ou seja, declarações de variáveis, constantes e métodos 
(BALENA, 2006). 
Os módulos são delimitados pelas palavras-chave 
Um módulo tem um nome que o identifica. 
O VB 2010 Express, ao criar um projeto, define automaticamente um módulo chamado Module1 com uma sub-rotina 
chamada Main(), que é o método principal, conforme o código ao lado. 
 
Module Module1 
 SubMain() 
 End Sub 
End Module 
 
MÓDULOS PREDEFINIDOS 
 
A linguagem de programação VB 2010 possui módulos predefinidos que agrupam declarações com finalidades afins 
para serem usadas pelo seu código. Abaixo vamos conhecer os módulos da linguagem VB 2010 (MSDN, 2010). 
 
Constants Contém diversos membros constantes que podem ser usados pelo seu código. 
 
ControlChars Contém membros constantes de controle de caracteres para impressão e apresentação de texto. 
 
Conversion 
Contém membros que convertem números decimais para outras bases, números para strings, strings 
para números e um tipo de dado para outro. 
 
DateAndTime 
Contém membros para obter a data e o horário corrente, realizar cálculos com datas e horários e 
atribuir a data ou o horário. 
 
ErrObject 
Contém membros para obter informações sobre erros gerados em tempo de execução, para gerar 
erro ou para inicializar (limpar) as propriedades do objeto Err, que representa o erro. 
 
FileSystem Contém métodos para realizar operações sobre arquivos, diretórios ou pastas. 
 
Financial Contém métodos para realizar cálculos financeiros. 
 
Globals Contém membros para obter informações sobre a versão do interpretador de script. 
 
Information 
Contém métodos que retornam resultados dos testes de verificação de tipo ou retornam as 
informações sobre erros em tempo de execução, o nome do tipo, o valor da cor em RGB etc. 
 
Interaction Contém métodos usados para interagir com objetos, aplicações e sistemas. 
 
Strings 
Contém métodos para tratamento e manipulação de strings como, por exemplo, para formatar, 
buscar um caracter ou sub-string na string, obter o código ASC do caracter, obter o comprimento 
da string etc. 
 
VBMath Contém métodos para realizar operações matemáticas. 
 
MÉTODO 
Um método, conhecido também como procedimento, é um bloco de códigos identificado por um nome. Um método 
é chamado pelo nome para que execute o bloco de códigos. Um módulo tem um ou mais métodos. 
As vantagens obtidas com o uso de métodos são: 
11 
 
 
1 - A eliminação de redundância de códigos que precisam ser executados mais de uma vez na aplicação, bastando 
que os códigos sejam definidos em um método e a aplicação faça chamadas ao método; 
 
2 - A possibilidade de reaproveitamento dos métodos entre diferentes aplicações. Para aumentar a possibilidade 
de reaproveitamento é importante que os métodos sejam coesos, isto é, realizem finalidades específicas; 
 
3 - A possibilidade de modularização do código da aplicação, tornando-o mais legível e desta forma menos 
suscetível a erros de codificação; 
 
4 - A possibilidade de que partes do código de uma aplicação sejam desenvolvidas em paralelo por mais de um 
programador, ou seja, enquanto um programador codifica a parte da aplicação que chama um método, um outro 
programador pode codificar em paralelo o código do método. Para que esta forma de trabalho seja produtiva é 
importante que as assinaturas dos métodos sejam previamente definidas para que os programadores utilizem as 
mesmas assinaturas dos respectivos métodos. 
 
SUB-ROTINA (SUB) 
 
Uma sub-rotina é um método que executa um bloco de código, mas não retorna um valor. As sub-rotinas são 
delimitadas pelas palavras-chave Sub e End Sub. Uma sub-rotina tem um nome que a identifica para que seja 
chamada. 
A sintaxe de um sub-rotina é: 
 
Sub Nome(ByVal NomeParametro1 As Tipo ..., ByVal NomeParametroN As Tipo) 
End Sub 
 
O exemplo ConsoleApplication3-1.sln, apresentado a seguir, define três linhas que acrescentam o prefixo "Olá " e o 
sufixo ", conheça a TI Verde." em cada nome apresentado na console. 
 
Module Module1 
 Sub Main() 
 Console.WriteLine("Olá" + "Fernando" + ", conheça TI Verde.") 
 Console.WriteLine("Olá" + "Ana" + ", conheça TI Verde.") 
 Console.WriteLine("Olá" + "Claudia" + ", conheça TI Verde.") 
 Aguarda a digitação de uma tecla antes de terminar. 
 Console.ReadKey() 
 End Sub 
End Module 
 
O exemplo ConsoleApplication3-2.sln apresentado a seguir, realiza a mesma tarefa do exemplo anterior utilizando a 
sub-rotina ExibirMensagem. Observe que este exemplo não apresenta redundância de código comum para 
acrescentar o prefixo e o sufixo. E, se você quiser, por exemplo, mudar o prefixo para "Oi ", basta substituir uma 
única vez o prefixo "Olá " por "Oi " na linha 3 do código. 
 
Module Module1 
 Sub ExibirMensagem(ByVal Nome As String) 
 Console.WriteLine("Olá" + Nome + ", conheça TI Verde.") 
 End Sub 
 
 Sub Main() 
 ExibirMensagem("Fernando") 
 ExibirMensagem("Ana") 
 ExibirMensagem("Claudia") 
 ' Aguarda a digitação de uma tecla antes de terminar. 
 Console.ReadKey() 
 End Sub 
End Module 
 
 
12 
 
FUNÇÃO (FUNCTION) 
 
Uma função é um método que executa um bloco de código e retorna um valor. As funções são delimitadas pelas 
palavras-chave Function e End Function. Uma função tem um nome que a identifica para que seja chamada. 
A sintaxe de uma função é: 
 
Function Nome(ByVal NomeParametro1 As Tipo ... ByVal NomeParametroN As Tipo ) 
 
 ' Código da função... 
 Return expressão 
 
End Function 
 
O exemplo ConsoleApplication3-3.sln, apresentado a seguir define uma função chamada AreaQuadrado que recebe 
como argumento o comprimento e retorna o valor de área de quadrado. A sub-rotina Main() chama a função 
AreaQuadrado passando o valor 3.0 e mais uma vez passando o valor 4.5: 
 
Module Module1 
 
 Function AreaQuadrado(ByVal Comprimento As Double) 
 'Calcula a área do quadrado. 
 Return Comprimento*Comprimento 
 End Function 
 
 Sub Main() 
 Console.WriteLine(AreaQuadrado(3.0)) 
 Console.WriteLine(AreaQuadrado(4.5)) 
 Console.ReadKey() 
 End Sub 
 
End Module 
 
 
ENCADEAMENTO DE MÉTODOS 
 
Um método pode chamar outro método permitindo assim que métodos mais especializados sejam criados para 
aumentar a coesão. 
O exemplo ConsoleApplication3-4.sln, apresentado a seguir define uma função chamada VolumeCubo que recebe 
como argumento o Comprimento, chama a função AreaQuadrado para obter a área e retona o valor do volume do 
cubo. A sub-rotina Main() chama a função VolumeCubo passando o valor 3.0: 
 
Module Module1 
 Function AreaQuadrado(ByVal Comprimento As Double) 
 'Calcula a área do quadrado. 
 Return Comprimento*Comprimento 
 End Function 
 
 Function VolumeCubo(ByVal Comprimento As Double) 
 'Chama Função AreaQuadrado. 
 Return AreaQuadrado(Comprimento)*Comprimento 
 End Function 
 
 Sub Main() 
 Console.WriteLine(VolumeCubo(3.0)) 
 Console.ReadKey() 
 End Sub 
End Module 
 
 
13 
 
ESCOPO 
O escopo define a acessibilidade de uma variá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. 
 
O exemplo ConsoleApplication3-5.sln, apresentado a seguir, define uma variável Private chamada Numero do tipo 
Double, a sub-rotina Main() atribui o valor 1 a esta variavel, depois ela é acessada pela sub-rotina Duplicar() para 
duplicar o valor dela, depois ela é acessada pela pela sub-rotina Triplicar() para triplicar o valor dela e no final ela 
é acessada pela Main() para exibir o valor dela. 
 
Module Module1 
 Private Numero As Double 
 Sub Duplicar() 
 'Acessa Numero declarado fora da sub-rotina e duplica. 
 Numero = Numero*2 
 End SubSub Triplicar() 
 'Acessa Numero declarado fora da sub-rotina e triplica. 
 Numero = Numero*3 
 End Sub 
 
 Sub Main() 
 Numero = 1.0 
 Duplicar() 
 Triplicar() 
 Console.WriteLine(Numero) 
 Console.ReadKey() 
 End Sub 
End Module 
 
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. 
 
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 de Conversão de tipos; 
 
Funções de manipulação de string; 
 
Funções Matemáticas 
 
http://estacio.webaula.com.br/Cursos/gon117/docs/03DS_doc01.pdf 
14 
 
AULA 4: 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 
 
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 
End If 
 
Onde o bloco de código somente será executado se a condição for verdadeira (True). 
 
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!". 
 
Module Module1 
 Sub Main() 
 Dim Sustentavel As String 
 Console.Write("É Sustentável (s/n)? ") 
 Sustentavel = Console.ReadLine() 
 If(Sustentavel="s")Then 
 Console.WriteLine("Parabéns!") 
 End If 
 Console.ReadKey() 
 End Sub 
End Module 
 
Estruturas de Controle de Decisão Estendida 
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ódigo1 
Else 
 Bloco de Código2 
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. 
 
15 
 
O exemplo ConsoleApplication4-2.sln, apresentado a seguir, exibe "Digite a sua média final: ", obtém a entrada de 
dados que é atribuída na variável MediaFinal. Se o valor da variável MediaFinal for maior ou igual a 6.0, exibe 
"Aprovado", senão exibe "Reprovado". 
 
Module Module1 
 Sub Main() 
 Dim MediaFinal As Single 
 Console.Write("Digite sua Média Final: ") 
 MediaFinal = Console.ReadLine() 
 
 If(MediaFinal >=6.0)Then 
 Console.WriteLine("Aprovado") 
 Else 
 Console.WriteLine("Reprovado") 
 End If 
 
 Console.ReadKey() 
 End Sub 
End Module 
 
 
Estruturas de Controle de Decisão Aninhada 
 
A sintaxe de uma estrutura de controle de decisão aninhada em outra em linguagem VB 2010 é: 
 
If(condição)Then 
 Bloco de Código1 
Else 
 If(condição)Then 
 Bloco de Código2 
 End If 
End If 
 
No entanto, a linguagem VB 2010 suporta uma sintaxe condensada, apresentada a seguir, que melhora a 
legibilidade do código. 
 
If(condição1)Then 
 Bloco de Código1 
ElseIf(condição2) 
 Bloco de Código2 
End If 
 
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ção1) Then 
 Bloco de Código1 
ElseIf(condição2) Then 
 Bloco de Código2 
ElseIf(condição3) Then 
 Bloco de Código3 
... 
End If 
 
 
 
 
O exemplo ConsoleApplication4-3.sln, apresentado a seguir, exibe "Digite um número de 0 a 99: ", obtém a entrada 
de dados que é atribuída na variável Numero. Se o valor da variável Numero estiver entre 0 a 9, exibe " O número 
está no intervalo de 0 a 9 inclusive.", senão testa se o valor da variável Numero está entre 10 e 99 e, se estiver, 
exibe " O número está no intervalo de 10 a 99 inclusive.", senão exibe "O número não está no intervalo de 0 a 99 
inclusive.". 
 
16 
 
Module Module1 
 Sub Main() 
 Dim Numero As Byte 
 Console.Write("Digite um número de 0 a 99: ") 
 Numero = Console.ReadLine() 
 If(Numero >=0 And Numero<=9)Then 
 Console.WriteLine("Número entre 0 e 9.") 
 ElseIf(Numero >=10 And Numero<=99)Then 
 Console.WriteLine("Número entra 10 e 99") 
 Else 
 Console.WriteLine("Fora do intervalo indicado.") 
 End If 
 Console.ReadKey() 
 End Sub 
End Module 
 
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ção1) Then instrução1 Else instrução2 
 
 
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ção1) Then instrução1 : instrução2 Else instrução3 : instrução4 
 
O exemplo ConsoleApplication4-4.sln, apresentado a seguir, é o exemplo ConsoleApplication4-2.sln modificado para 
fazer uso da estrutura de controle de decisão em uma única linha. 
 
Module Module1 
 Sub Main() 
 Dim MediaFinal As Single 
 Console.Write("Digite sua Média Final: ") 
 MediaFinal = Console.ReadLine() 
 If(MediaFinal >=6.0)Then Console.WriteLine("Aprovado") Else 
 Console.WriteLine("Reprovado") 
 End If 
 Console.ReadKey() 
 End Sub 
End Module 
 
Estrutura de Controle de Múltiplas Decisões (escolha) 
 
A linguagem VB 2010 tem a instrução Select Case, que permite definir uma estrutura de controle de múltiplas 
decisões(escolha) de forma mais otimizada do que com o usa de estrutura de decisão aninhadas, apresentadas 
anteriormente. 
 
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 
 
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. 
 
17 
 
Module Module1 
 Sub Main() 
 Dim Numero As Byte 
 Console.Write("Digite um número de 0 a 99: ") 
 Numero = Console.ReadLine() 
 Select Case (Numero) 
 Case 0 To 9 
 Console.WriteLine("Número entre 0 e 9.") 
 Case 10 To 99 
 Console.WriteLine("Número entra 10 e 99") 
 Case Else 
 Console.WriteLine("Fora do intervalo indicado.") 
 End Select 
 Console.ReadKey() 
 End Sub 
End ModuleEstrutura de Controle de Repetição Controlada por Contador (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 é: 
 
Instrução de inicialização da variável da condição 
While(condição) 
 Bloco de Código com instrução de alteração da variável da condição 
End /while 
 
O exemplo ConsoleApplication4-8.sln, apresentado a seguir, é o exemplo ConsoleApplication4-6.sln modificado para 
fazer uso da estrutura de controle de repetição While ao invés do For: 
 
Module Module1 
 Sub Main() 
 Dim Contador As Byte = 1 'instrução de inicialização 
 While (Contador <= 10) 
 Console.WriteLine(Contador) 
 'instrução de alteração da variável da condição 
 Contator= Contador + 1 
 End While 
 Console.ReadKey() 
 End Sub 
End Module 
 
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. 
 
Instrução de inicialização da variável da condição 
Do While ou Until(condição) 
 Bloco de Código com instrução de alteração da variável da condição 
Loop 
 
 
Instrução de inicialização da variável da condição 
Do 
 Bloco de código com instrução de alteração da variável da condição 
Loop While ou Until (condição) 
 
Quando o While é utilizado, o laço será repetido enquanto a condição for verdadeira (True). 
 
18 
 
Quando o Until é utilizado, o laço será repetido até que a condição seja falsa (False). 
 
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) ou várias vezes (1 a n 
vezes). 
 
O exemplo ConsoleApplication4-9.sln, apresentado a seguir, é o exemplo ConsoleApplication4-6.sln modificado para 
fazer uso da estrutura de controle de repetição Do While ao invés do For, e equivalente ao exemplo 
ConsoleApplication4-8.sln. 
 
Module Module1 
 Sub Main() 
 Dim Contador As Byte = 1 ' instrução de incializaçã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 
End Module 
 
O exemplo ConsoleApplication4-10.sln, apresentado a seguir, é o exemplo ConsoleApplication4- 6.sln modificado 
para fazer uso da estrutura de controle de repetição Do Until ao invés do For, e equivalente ao exemplo 
ConsoleApplication4-8.sln. 
 
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 + 1 
 Loop 
 Console.ReadKey() 
 End Sub 
End Module 
 
 
 
19 
 
AULA 5: TRATAMENTO 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ços de 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. 
 
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 
 
Os tipos de exceções derivam da classe System.Exception que é definida no .NET framework. 
Os principais tipos de exceções são: 
 
ArgumentException NotImplementedException 
ArgumentNullException OutOfMemoryException 
ArgumentOutOfRangeException OverflowException 
IndexOutOfRangeException FileNotFoundException 
 
 
O 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. 
 
 
Try 
 … 
 Catch Ex As Exception 
 … 
End Try 
 
 
 
A seção Catch 
A palavra-chave Catch 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. 
 
 
20 
 
A 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 
 
 
O exemplo ConsoleApplication5-1.sln, apresentado a seguir, declara a variável i do tipo Decimal e atribui o valor 
10, declara a variável j do Decimal e atribui o valor zero, define a divisão de i por j sem captura e tratamento de 
exceção, que ao ser executado é abortado por gerar uma exceção de divisão por zero (DivideByZeroException). 
 
 
Module Module1 
 Sub Main() 
 
 Dim i As Decimal = 10 
 Dim j As Decimal = 0 
 Dim Resultado As Decimal 
 
 Resultado = i/j 
 
 Console.ReadKey() 
 
 End Sub 
End Module 
 
 
A imagem mostra a janela de exceção de divisão por zero sem tratamento, apresentada ao se executar o programa 
pelo IDE do Visual Basic 2010 Express. 
 
 
 
 
 
O exemplo ConsoleApplication5-2.sln, apresentado a seguir, é o exemplo ConsoleApplication5-1.sln modificado para 
realizar a captura e o tratamento da exceção genérica, ou seja, de qualquer tipo de exceção. 
 
21 
 
Module Module1 
 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 
End Module 
 
 
A imagem mostra a mensagem exibida pela seção de tratamento de exceção genérica do programa. 
 
 
 
O exemplo ConsoleApplication5-3.sln, apresentado na próxima peça, é o exemplo ConsoleApplication5-1.sln 
modificado para na primeira seção Catch capturar e tratar a execeção DivideByZeroException e na segunda seção 
Catch capturar e tratar uma exceção genérica, ou seja, qualquer tipo de exceção. 
 
Module Module1 
 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 da DivideByZeroException 
 Console.WriteLine("Houve um erro de exceção de divisão por zero.") 
 Catch exDivideByZero As DivideByZeroException 
 'Captura Genérica 
 Console.WriteLine("Houve um erro de exceção genérica.") 
 End Try 
 
 Console.ReadKey() 
 
 End Sub 
End Module 
 
Ao executar o programa, a primeira seção Catch captura a exceção DivideByZeroException e exibe a mensagem 
mostrada na imagem. 
 
 
22 
 
BLOCOS TRY...END TRY ANINHADOS 
 
Os blocos Try...End Try podem ser aninhados. O exemplo ConsoleApplication5-4.sln, apresentado a seguir, define 
um bloco Try...End Try externo que contém um outro bloco Try...End Try interno. 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." 
 
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 
 Dim reader As New BinaryReader(fs) 
 reader.Readlnt32() 
 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 
 
 
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. 
 
Module Module1 
 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 da DivideByZeroException 
 Console.WriteLine("Houve um erro de exceção de divisão por zero.") 
 Catch exDivideByZero As DivideByZeroException 
 'Captura Genérica 
 Console.WriteLine("Houve um erro de exceção genérica.") 
 Finally 
 Beep() 
 End Try 
 
 Console.ReadKey() 
 
 End Sub 
End Module 
23 
 
 
 
 
Em algumas situações você pode deseja 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. 
 
Module Module1 
 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 igual a zero.") 
 End If 
 Resultado = i/j 
 Catch ex As Exception 
 'Captura Genérica 
 Console.WriteLine("Ocorreu uma exceção:{0}.",ex.Message) 
 Finally 
 Beep() 
 End Try 
 
 Console.ReadKey() 
 
 End Sub 
End Module 
 
Mensagem exibida com o lançamento da exceção genérica. 
 
 
 
 
Conteúdo completo de Visual Basic em https://msdn.microsoft.com/pt-br/library/2x7h1hfk.aspx

Outros materiais