예제 #1
0
        public ExemploDeUso()
        {
            InitializeComponent();

            MsgAvancado.ExibirErroValidacao("Você errou em alguma parte");
            MsgAvancado.ExibirInformacao("Pare de errar");
            var r = MsgAvancado.ExibirPergunta("Você vai parar de errar?");

            if (r == System.Windows.Forms.DialogResult.Yes)
            {
                MsgAvancado.ExibirInformacao("Que bom cara");
            }
            else
            {
                MsgAvancado.ExibirErroValidacao("Você deve parar de errar!");
            }


            //Define a MsgControl com a atualização de um label
            msg = new MsgControl(label1);
            msg.TextoExibido = "Texto que não terá tempo suficiente para ser exibido";
            //Define que ele está rodando async
            //Não pode setar durante a thread async
            msg.RodandoCarregamento = true;


            BackgroundWorker bw = new BackgroundWorker();

            bw.DoWork += bw_DoWork;
            bw.RunWorkerAsync();
        }
예제 #2
0
 private static void GlobalUnhandledExceptionHandler(object sender, UnhandledExceptionEventArgs e)
 {
     try
     {
         // Tem um cast, pode dar erro, e se der erro, pode entrar num laço infinito de erros quando der cast de novo, então precisa de try..catch
         MsgAvancado.ExibirErro((Exception)e.ExceptionObject, "Ops, ocorreu um erro", MsgAvancado.IntensidadeErro.Gravissimo);
     }
     catch (Exception ex)
     {
         MsgAvancado.ExibirErro(ex, "Falha ao iniciar sistema. Contate um desenvolvedor.");
         // Finaliza o sistema da forma mais dramática possível, pra impedir qualquer outro erro
         System.Diagnostics.Process.GetCurrentProcess().Kill();
     }
 }
예제 #3
0
        /// <summary>
        /// Carrega um objeto de configuração de um diretório específico, se ele não existe então é criado
        /// </summary>
        /// <param name="dir">O diretorio a ser carregado</param>
        public static ObjetoConfig CarregarOuCriar(Type tipo)
        {
            ObjetoConfig objetoConfig = null;

            //Se existir as configurações tenta carregar
            if (File.Exists(tipo.Name + ".bin"))
            {
                try
                {
                    objetoConfig = Carregar(tipo);
                }
                //Se não conseguir define padrão e salva
                catch
                {
                    try
                    {
                        objetoConfig = (ObjetoConfig)Activator.CreateInstance(tipo);
                        objetoConfig.DefinirPadrao();
                        Salvar(objetoConfig);
                    }
                    catch (Exception ex)
                    {
                        MsgAvancado.ExibirErro(ex, "Erro ao tentar criar e salvar a configuração: " + tipo.Name + ".bin");
                    }
                }
            }
            else
            {
                try
                {
                    objetoConfig = (ObjetoConfig)Activator.CreateInstance(tipo);
                    objetoConfig.DefinirPadrao();
                    Salvar(objetoConfig);
                }
                catch (Exception ex)
                {
                    MsgAvancado.ExibirErro(ex, "Erro ao tentar criar e salvar a configuração: " + tipo.Name + ".bin");
                }
            }
            return(objetoConfig);
        }
예제 #4
0
 /// <summary>
 /// Gera o relatório da exceção da Task
 /// Leonardo Costa 30/10/2015
 /// </summary>
 /// <param name="task">Task que foi interrompida por uma exceção não tratada</param>
 private static void ExceptionHandler(Task task)
 {
     MsgAvancado.ExibirErro(task.Exception);
 }
예제 #5
0
 private static void GlobalThreadExceptionHandler(object sender, ThreadExceptionEventArgs e)
 {
     // Gera o relatório do erro e reinicia o sistema
     MsgAvancado.ExibirErro(e.Exception, "Ops, ocorreu um erro", MsgAvancado.IntensidadeErro.Gravissimo);
 }