terça-feira, 19 de abril de 2011

Exemplo de POO avançado

Imports System
Imports System.IO
Imports System.Collections

Module Module1
    Sub Main()

        Try
            Dim fileName As New StreamReader("I:\2ºano\psi\m11\ficheiro.txt")
            Dim Linha As String = ""
            Dim lerText As New ArrayList()

            Do
                Linha = fileName.ReadLine()
                If Not Linha Is Nothing Then
                    lerText.Add(Linha)
                End If
            Loop Until Linha Is Nothing
            fileName.Close()

            For Each Linha In lerText
                Console.WriteLine(Linha)
            Next
            Console.ReadLine()


        Catch ex As Exception

            Dim fileName As String = InputBox("Não foi possivel visualizar o ficheiro", "Ler Ficheiro", "F:\2ºano\psi\m11\ficheiro.txt")

            'Finally

        End Try

    End Sub
End Module


Neste código podemos ver o tratamento de excepções de um ficheiro.
Em que, caso ocorra erro, apenas vai aparecer uma caixa com uma mensagem a dizer que não é possível visualizar e o destino do ficheiro que foi introducido.

POO avançado

Após ter falado em POO, foi util aprender excepções (POO avançado).
Excepções são problemas que acontecem no código que desviam o fluxo normal de instruções. Ou seja, excepções são tratamento de erros que podem acontecer no decorrer do programa.
Que podem ser :
1) Erro de compilador ou erro de sintaxe; 
2) Problemas de lógica;
3) Erros em tempo de execução .

A classe “Exception” é a superclasse de todas as classes de excepções. Assim, caso não se saiba qual excepção adequada no bloco catch para realizar o tratamento, basta colocar a Exception que consegue capturar qualquer tipo de excepção que ocorra no bloco try. Ou então pode-se colocar a propriedade “Message”, que devolve uma mensagem de texto que descreve a excepção, ou “HelpLink”, que devolve ou define a ligação para um ficheiro de ajuda com mais informação sobre a excepção ou então “Source” que devolve ou define o nome do objecto (ou aplicação) que deu origem à excepção.


O bloco “finally” é opcional. Pode ser colocado se identificarmos alguma instrução que deve ser executada tanto no caso de ocorrer uma excepção ou não.

Usa-se throw quando quer-se “levantar” uma excepção.
Usa-sethrows” quando não quer-se colocar um bloco try/catch num código que exige tratamento de excepções. Dessa forma, a responsabilidade de realizar esse tratamento é passada para o método que realizou a chamada para o método onde ocorreu o problema.

O tratamento de erros é realizado basicamente com estrutura try/catch. No bloco “try” coloca-se o código que suspeita-se ocorrer algum erro. No bloco “catch” coloca-se o código de tratamento do erro, por exemplo, uma mensagem para o utilizador. Pode-se ter vários blocos catch para o mesmo try, pois no mesmo bloco try podem ocorrer mais de um tipo de excepção, cada uma sendo tratada no seu bloco catch correspondente.