# SESSION SIX: CHECKOUT
Author: Igor Lima Charles
N°: 18
Grade: INFOA
## MAPA MENTAL

## VALIDAÇÕES: IF + THROW EXCEPTION
Utilizamos esta combinação de comandos para determinar exceções que podem ocorrer ao executarmos uma parte específica do programa, como por exemplo, podendo ser ela um argumento inválido.
O comando ***IF*** indica que é necessária determinada situação para que criemos uma exceção
Utilizamos essaa declaração ***throw exception*** "dizer" que existe um evento anormal/inválido dentro de nosso código. Vale ressaltar que nessas ***exceções***, nós podemos retornar uma mensagem
```csharp=
//EXEMPLO
public double AreaRetangulo(double b, double a)
{
if (b < 0)
throw new Exception("Base inválida");
if (a < 0)
throw new Exception("Altura inválida");
double area = b * a;
return area;
}
```
## VALIDAÇÕES: TRY/CATCH
Utiliza-se essa combinação de declarações para capturar e tratar nossas exceções.
A claúsula ***TRY*** tentará executar o código, caso não haja erros de códigos, ele seguirá para o próximo passo. Agora, caso ocorra, ele irá para a claúsula ***CATCH***.
***CATCH*** trata a a exceção encontrada pela clausula anterior
```csharp=
// EXEMPLO
public double AreaRetangulo(double b, double a)
{
if (b < 0)
throw new Exception("Base inválida");
if (a < 0)
throw new Exception("Altura inválida");
double area = b * a;
return area;
}
try
{
double x = AreaRetangulo(-10, 5);
Console.WriteLine(x);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
return value = Base inválida
```
## CRUD
CRUD é o anacrônimo em inglês para:
* Criar (Create): É onde criamos um registro, como uma variável, função, classe ou lista, ...
* Exibir (Read) : É onde vemos o que tem dentro daquilo que críamos
* Alterar(Update): Alteramos um valor presente naquilo que críamos, como por exemplo, de uma varíavel/um elemento
* Deletar(Delete): Excluímos um elemento presente dentro daquilo que críamos, como uma variável.
```csharp=
//EXEMPLO
// criacao - CRUD
List<int> lista = new List<int>();
// adicionar
lista.Add(1);
lista.Add(20);
lista.Add(32);
lista.Add(40);
lista.Add(52);
// exibir
Console.WriteLine(string.Join(" - ", lista));
// alterar
lista[0] = 10;
lista[2] = 30;
lista[4] = 50;
Console.WriteLine(string.Join(" - ", lista));
// ler
int x = lista[2];
Console.WriteLine(x);
x = lista[4];
Console.WriteLine(x);
// remover
lista.Remove(1);
Console.WriteLine(string.Join(" - ", lista));
lista.RemoveAt(0);
Console.WriteLine(string.Join(" - ", lista));
return value {
1 - 20 - 32 - 40 - 52
10 - 20 - 30 - 40 - 50
30
50
10 - 20 - 30 - 40 - 50
20 - 30 - 40 - 50}
```
## COMANDO FOR
Este comando é responsável pela estrutura de repetição quando queremos que determinado bloco de código seja executado diversas vezes.
Nós utilizamos de três elementos para compor sua sintaxe: ***inicializador, contador e iterador***.
```csharp=
//EXEMPLO
using System;
for (int i = 0; i <= 100; i++)
{
Console.WriteLine(i++);
}
0
2
4
6
8
...
100
```