Função desembrulada para manuseio de erros na ferrugem

Função desembrulada para manuseio de erros na ferrugem

Suponha que você precise de uma base concreta sobre o manuseio de erros na ferrugem. Você precisa entender a opção e os tipos de resultado. Eles mantêm a base para o desembrulhamento e esperam funções críticas no tratamento de erros.

Vamos ver se podemos entender deles neste tutorial.

Tipo de opção de ferrugem

O tipo de opção de ferrugem é uma enumeração relativamente "simples" usada para fabricar a possibilidade de ausência.

Dê uma olhada na seguinte opção Sintaxe:

opção enum
Nenhum,
Alguns (t),

Você pode notar que tem duas variantes: algo (algumas) e nada (nenhum). A capacidade de dizer ao compilador como lidar com a possibilidade de ausência é importante.

Em suma, pense no tipo de opção como uma caixa que pode ter algo ou nada além de não ambos.

Tipo de resultado da ferrugem

O tipo de resultado também é definido na biblioteca padrão. A sintaxe é fornecida abaixo:

Resultado da enumeração
Ok (t),
Err (e),

Tem duas variantes: ok e err. Observe que é intimamente semelhante ao tipo de opção. Isso ocorre porque funciona muito da mesma forma.

No entanto, diferentemente do tipo de opção, o tipo de resultado "antecipa" a possibilidade de um erro. Pense dessa maneira. Se você executar uma operação, há apenas duas coisas que podem acontecer, ou a operação é bem -sucedida, daí ok.

Ou a operação falha e você recebe um erro. Portanto, a variante err emerge. Quando a operação retornar um erro na ferrugem, a variante err () chamará o pânico! macro e saída.

Mas o que isso tem a ver com o tratamento de erros?

Existem duas maneiras de lidar com a possibilidade de ausência. O primeiro é o manuseio explícito usando o operador de correspondência, e o próximo é o manuseio implícito com a função Unwrap.

O código de exemplo a seguir ilustra as informações fornecidas:

#[permitir (Dead_code)]
fncheck_db (db: opção)
// alça explícita com a partida
Matchdb
Alguns ("mysql") => println!("Servidor em execução na porta: 3306"),
Alguns ("postgreSql") => println!("Servidor em execução na porta: 5432"),
Alguns (interno) => println!("Deixe -me verificar isso!!!"),
Nenhum => println!("Forneça um db:"),


#[permitir (Dead_code)]
fndb (db: option)
// alça implícita com desembrulhado
ifdb.Unwrrap () == ""
// pânico se nenhum
pânico!("Abortado")


fnmain ()
letmysql = alguns ("mysql");
letPostGres = alguns ("postgreSql");
deixe nenhum = nenhum;
check_db (mysql);
check_db (PostGres);
check_db (alguns ("mongodb"));
check_db (nenhum);
dB (alguns ("MongoDB"));
dB (nenhum);

O exemplo anterior usa duas funções para ilustrar o manuseio explícito e implícito de erros nos valores inigualáveis ​​e alguns de retorno.

O primeiro usa o operador de correspondência para verificar vários casos, enquanto o outro usa o Unwrap. Se não recebe nenhum, a função entra em pânico.

O código anterior fornece a seguinte saída:

Conclusão

Este artigo analisa o tratamento de erros na linguagem de programação de ferrugem. Este processo inclui o desembrulhar e esperar que as funções concluam o processo. Além disso, o tipo de opção de ferrugem e o tipo de resultado da ferrugem foram discutidos. Esperamos que você tenha achado este artigo útil. Verifique outros artigos de dica do Linux para obter mais dicas e informações.