return exception in alert javascript
29/01/2016
0
Estou tendo problemas para retornar a mensagem de exceção ocorrida em requisição ajax em um alert do javascript.
Só consigo ver o erro no modo debbug, pois o retorno no alert é [object: object]
public JsonResult CancelarVenda(string pArr) { try { string strRet = "", strUsuario = Session["Login_Id"].ToString(); int iQtd = 0; string[] str = pArr.Split(','); Intraflex01.Models.VendasCompos20 vendas = new Models.VendasCompos20(); for (int i = 0; i < str.Length; i++) { strRet = str[i].Replace("[", "").Replace("\"", "").Replace("]", ""); var query = string.Format(@"INSERT INTO SGV.dbo.VendasCompos20Canc(idVendasCompos20) VALUES()", strRet); Intraflex01.Models.SqlCommands.ExecuteNonQuery(query, null, Intraflex01.Models.SqlCommands.Conexao.SGV); try { if (vendas.CancelaSAP(strRet, strUsuario)) { iQtd++; } } catch { query = string.Format(@"DELETE FROM SGV.dbo.VendasCompos20Canc WHERE idVendasCompos20 = ", strRet); Intraflex01.Models.SqlCommands.ExecuteNonQuery(query, null, Intraflex01.Models.SqlCommands.Conexao.SGV); throw; } } return Json(iQtd, JsonRequestBehavior.AllowGet); } catch (Exception ex) { throw ex; } }
$.ajax({ type: "POST", dataType: "json", url: "/VendasCompos20/CancelarVenda/", data: { pArr: JSON.stringify(arr) }, success: function (data) { alert("Processo realizado com sucesso. Quantidade cancelada: " + data); window.location.reload(); }, error: function (error) { alert("Error ao realizar o processo: " + error); } });
após isso fiz um teste incluindo o try catch
try { $.ajax({ type: "POST", dataType: "json", url: "/VendasCompos20/CancelarVenda/", data: { pArr: JSON.stringify(arr) }, success: function (data) { alert("Processo realizado com sucesso. Quantidade cancelada: " + data); window.location.reload(); }, error: function (error) { alert("Error ao realizar o processo: " + error); } }); } catch (e) { var message = e.message; alert("Erro ao executar: " + message); }
mesmo assim continua retornando o erro genérico, alguém poderia me ajudar a resolver ?
João Viana
Posts
29/01/2016
Jothaz
Você quer exibir a mensagem de erro da Exception em alert no JavaScript?
29/01/2016
João Viana
Estou tentando retornar a mensagem de erro para exibir para o usuário, porém retorna um erro genérico e não a mensagem correta.
29/01/2016
Jothaz
É mais profissional, elegante e produtivo você cria um log de erros e retornar mensagens genéricas para o usuário. Para o usuário o que importa é somente que ocorreu o erro e nada mais. A mensagem pode até descrever qual funcionalidade para facilitar o suporte. Mas os detalhes do erro deve ser gravado em um arquivo de log.
O .net possui alguns componentes free para este controle de log tipo log4net e nLog. São muito simples de usar e lhe dará um controle total sobre tudo que retornar erro.
29/01/2016
João Viana
if (wsRetorno.Erro) return true; else throw new Exception("Produto não cadastrado, Verifique.");
E preciso retornar essa mensagem
29/01/2016
Jothaz
O problema é que o retorno é objeto e então você deve converter para string.
Tente:
String(object) object.toString()
Se o retorno for JSON:
JSON.stringify(object);
Ou tente usar a função:
function objToString (obj) { var str = ''; for (var p in obj) { if (obj.hasOwnProperty(p)) { str += p + '::' + obj[p] + '\n'; } } return str; }
Clique aqui para fazer login e interagir na Comunidade :)