Skip to content

Adicionado finally #23

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 39 additions & 7 deletions docs/3-Básico/09-Try-catch.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 3.9 Try-Catch

A instrução Try-Catch consiste em um bloco ``try`` seguido de um ou mais blocos ``catch`` onde tem como objetivo capturar as exceções e, no geral, imprimir uma mensagem para o usuário.
A instrução Try-Catch consiste em um bloco `try` seguido de um ou mais blocos `catch` onde tem como objetivo capturar as exceções e, no geral, imprimir uma mensagem para o usuário.

Toda exceção lançada pelo sistema, procura por um bloco catch. Caso não haja, exibirá uma mensagem de exceção sem tratamento para o usuário e interromperá a execução do programa.

Expand All @@ -12,7 +12,7 @@ Esta instrução possui a seguinte estrutura:

## Exemplos:

```csharp
```cs
using System;

public class Program
Expand All @@ -31,11 +31,11 @@ public class Program
//Neste caso não teremos uma exceção.
Console.WriteLine("Um erro foi detectado");
}
}
}
}
```

```csharp
```cs
using System;

public class Program
Expand All @@ -54,7 +54,7 @@ public class Program
{
string s = null;
try
{
{
//Processa uma string null.
ProcessaString(s);
}
Expand All @@ -63,8 +63,40 @@ public class Program
//Neste caso vamos imprimir "Um erro foi detectado" pois o valor passado irá disparará uma exceção.
Console.WriteLine("Um erro foi detectado");
}
}
}
}
```

### Finaly <img alt="Badge em breve" src="https://img.shields.io/badge/-EM%20BREVE-purple">
### Finaly

Alem dos blocos try e catch, tambem existe o bloco `finally`, que deve acompanhar um try-catch, a ideia do bloco finally é rodar uma instrução depois do try-catch, geralmente é utilizado quando se é necessário fazer algo na aplicação independente se o sistema gerou uma exceção ou não.

## Exemplo:

```cs
using System;

public class Program
{
public static void Main()
{
try
{
//lança uma exceção (Argumento é nulo).
throw new ArgumentNullException();
}
catch
{
//lança outra exceção (Argumento é nulo)
throw new ArgumentNullException();
}
finally
{
//essa mensagem é executada após o catch
Console.WriteLine("Mensagem Finally");
}
//Essa mensagem não é executada, uma exceção dentro do catch fez o sistema ser interrompido
Console.WriteLine("Teste depois try");
}
}
```
8 changes: 4 additions & 4 deletions docs/4-Intermediario/03-Heranca.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Podemos pensar em uma relação de "Pai" e "Filho", onde o filho HERDA todas as

A seguir, temos uma classe com nome *Pai* que contém as propriedades nome e idade, além do método QuemEuSou.

```
```cs
using System;

namespace testes
Expand Down Expand Up @@ -34,7 +34,7 @@ namespace testes

Agora, vejamos a classe com nome *Filho*:

```
```cs
using System;

namespace testes
Expand Down Expand Up @@ -62,7 +62,7 @@ Nesse exemplo em específico, eu fiz com que a classe Filho tivesse uma propried

Vejamos a instanciação:

```
```cs
using System;

namespace testes
Expand All @@ -86,7 +86,7 @@ No código acima, nós instanciamos um objeto da classe *Filho* passando os par

No código abaixo, utilizaremos como exemplo uma classe pai chamada "Conta" e uma classe Filho chamada "ContaCorrente". Como vimos, a classe filho herda todas as propriedades e métodos da classe pai.

```
```cs
using System;

namespace testes
Expand Down
6 changes: 3 additions & 3 deletions docs/5-Avancado/02-Delegates.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Para chamar o delegate, apenas digite o nome do objeto instanciado adicionando o

- *Delegate sem retorno e sem parâmetros*

```
```cs
using System;

namespace testes
Expand Down Expand Up @@ -51,7 +51,7 @@ namespace testes

- *Delegate sem retorno e com parâmetros*

```
```cs
using System;

namespace testes
Expand Down Expand Up @@ -79,7 +79,7 @@ namespace testes
```

- *Delegate com retorno e com parâmetros*
```
```cs
using System;

namespace testes
Expand Down