café com bug - 2a edição em 13/05/2010

18

Upload: guest5542ac7

Post on 14-Jul-2015

306 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Café com Bug - 2a Edição em 13/05/2010
Page 2: Café com Bug - 2a Edição em 13/05/2010

Escalabilidade

Tratamento de Exceções

Logging/Debugging

Page 3: Café com Bug - 2a Edição em 13/05/2010

Capacidade Máxima: 100 usuários

100 usuários = 100%

150 novos usuários

Capacidade necessária: 250 usuários = 150%+!

Page 4: Café com Bug - 2a Edição em 13/05/2010
Page 5: Café com Bug - 2a Edição em 13/05/2010
Page 6: Café com Bug - 2a Edição em 13/05/2010
Page 7: Café com Bug - 2a Edição em 13/05/2010

1 2 3 4 5 6

Page 8: Café com Bug - 2a Edição em 13/05/2010
Page 9: Café com Bug - 2a Edição em 13/05/2010

Avisar Informar Armazenar

Page 10: Café com Bug - 2a Edição em 13/05/2010

Global.asax

protected void Application_Error(object sender, EventArgs e){

Exception ex = Server.GetLastError();RSLHandler handler = new RSLHandler().Configure();handler.Handle(ex);

}

Page 11: Café com Bug - 2a Edição em 13/05/2010
Page 12: Café com Bug - 2a Edição em 13/05/2010
Page 13: Café com Bug - 2a Edição em 13/05/2010

Web.Config:

<customErrors defaultRedirect=“erroPadrao.html" mode="On"> <error statusCode=“403" redirect=“NaoPermitida.html"/><error statusCode=“404" redirect=“NaoEncontrada.html"/>

</customErrors>

Page 14: Café com Bug - 2a Edição em 13/05/2010

private void Salvar(Usuario novoUsuario){

//Abre conexão com banco de dadosDataReader dr = cmd.Execute(sql);//Executa uma instrução que gera exceptionthrow new Exception(“Whatever”);

}

private void Salvar(Usuario novoUsuario){

DataReader dr = cmd.ExecuteReader(sql, CommandBehavior.CloseConnection);try {

//Executa uma instrução que gera exceptionthrow new Exception(“Whatever”);

}finally{dr.Close();

}}

Page 15: Café com Bug - 2a Edição em 13/05/2010

private void Foo(){

try {//Executa uma operação que lança exceção

} catch (Exception ex) {string Message = ex.Message;throw ex;

}}

private void Foo(){

try {//Executa uma operação que lança exceção

} catch (Exception ex) {string Message = ex.Message;throw;

}}

Page 16: Café com Bug - 2a Edição em 13/05/2010
Page 17: Café com Bug - 2a Edição em 13/05/2010

private void Log(string message){

ILog log = LogManager.GetLogger(“MyLoggerName”); log.Info(“Debug message”);log.Error(“A big error!”);

}

<log4net> <!-- A1 is set to be a ConsoleAppender --> <appender name=“MyAppender" type="log4net.Appender.ConsoleAppender">

<!-- A1 uses PatternLayout --> <layout type="log4net.Layout.PatternLayout">

<conversionPattern value=“%-4timestamp [%thread] %-5level %logger %ndc - %message%newline" /> </layout>

</appender> <!-- Set root logger level to DEBUG and its only appender to A1 --> <root>

<level value="DEBUG" /> <appender-ref ref="A1" />

</root></log4net>

Page 18: Café com Bug - 2a Edição em 13/05/2010

Email: [email protected] ou [email protected]: http://blog.tucaz.net

Twitter: http://www.twitter.com/tucaz

http://msdn.microsoft.com/en-us/library/ff647787.aspxhttp://msdn.microsoft.com/en-us/library/ff649308.aspxhttp://msdn.microsoft.com/en-us/library/ms229014%28VS.80%29.aspxhttp://blog.tucaz.net/en/2009/07/21/basic-stuff-handling-exceptions-in-net/http://logging.apache.org/log4net/release/manual/configuration.htmlhttp://haacked.com/archive/2005/03/07/ConfiguringLog4NetForWebApplications.aspxhttp://intrafnac.fnac.br/dosi/sistemas/WikiSistemas/Paginas%20Wiki/Home.aspxhttp://intrafnac.fnac.br/dosi/sistemas/WikiSistemas/Paginas%20Wiki/Tratamento%20de%20Exceções.aspx