If you want to catch the exception elsewhere in the code do not catch it at that point, let it bubble to where you need to catch it. In fact this method does not compile.
public static void Inserir(Usuario usuario) {
using (var oDB = new estoqueDataClassesDataContext()) { //para fazer o dispose correto
oDB.Usuarios.InsertOnSubmit(usuario);
oDB.SubmitChanges();
}
}
There you will use:
try {
Inserir(usuario);
} catch (AlgumaExcecaoEspecificaAqui ex) { //não capture Exception
MessageBox.Show(ex.Message); //você pode caprichar mais.
}
See the documentation for the exception you've chosen to capture to see everything it has available that you can show. I am posting the documentation for Exception
here, but do not capture it . See what you want to determine that it is useful to show as an error.
If you think it is very important to catch the exception within this method, you can do:
public static string Inserir(Usuario usuario) {
try {
var oDB = new estoqueDataClassesDataContext();
oDB.Usuarios.InsertOnSubmit(usuario);
oDB.SubmitChanges();
} catch (AlgumaExcecaoEspecificaAqui ex) {
return ex.Message;
} finally {
if (oDB != null) {
((IDisposable)oDB).Dispose();
}
}
return "Tudo ocorreu ok";
}
There you will use:
MessageBox.Show(Inserir(usuario));
You could still get boolean feedback and message if you need to do something different:
public static bool Inserir(Usuario usuario, out string nensagem) {
try {
var oDB = new estoqueDataClassesDataContext();
oDB.Usuarios.InsertOnSubmit(usuario);
oDB.SubmitChanges();
} catch (AlgumaExcecaoEspecificaAqui ex) {
menssagem = ex.Message;
return false;
} finally {
if (oDB != null) {
((IDisposable)oDB).Dispose();
}
}
mensagem = "Tudo ocorreu ok";
return true;
}
There you will use:
string mensagem;
if (Inserir(usuario, out mensagem)) {
MessageBox.Show(mensagem);
} else {
//faz outra coisa aqui que não seja só mostrar a mensagem, para fazer sentido
}
In C # 7 you can do:
public static (bool, string) Inserir(Usuario usuario) {
try {
var oDB = new estoqueDataClassesDataContext();
oDB.Usuarios.InsertOnSubmit(usuario);
oDB.SubmitChanges();
} catch (AlgumaExcecaoEspecificaAqui ex) {
return (false, ex.Message);
} finally {
if (oDB != null) {
((IDisposable)oDB).Dispose();
}
}
return (true, "Tudo ocorreu ok");
}
There you will use:
var (ok, mensagem) = Inserir(usuario); //talvez tenha uma forma mais conveniente
if (ok) {
MessageBox.Show(mensagem);
} else {
//faz outra coisa aqui que não seja só mostrar a mensagem, para fazer sentido
}