SlideShare a Scribd company logo
1 of 18
com rev. 2
Foco em
Escalabilidade Capacidade Máxima: 100 usuários 100 usuários = 100% 150 novos usuários Capacidade necessária: 250 usuários = 150%+!
#Comofas?
#Comofas2?
#Comofas3?
Load Balance 1 2 3 4 5 6
Tratamento de Exceções
Como tratar?
A solução! Global.asax protected void Application_Error(object sender, EventArgs e){    Exception ex = Server.GetLastError();    RSLHandler handler = new RSLHandler().Configure();    handler.Handle(ex);}
E o usuário ve isso...
Quando deveria ver...
A solução! Web.Config: <customErrorsdefaultRedirect=“erroPadrao.html" mode="On">  <error statusCode=“403" redirect=“NaoPermitida.html"/> 	<error statusCode=“404" redirect=“NaoEncontrada.html"/>  </customErrors>
Errado #1 private void Salvar(UsuarionovoUsuario) { //Abreconexão com banco de dados DataReader dr = cmd.Execute(sql); 	//Executaumainstruçãoquegera exception throw new Exception(“Whatever”); } Certo #1 private void Salvar(UsuarionovoUsuario) { DataReader dr = cmd.ExecuteReader(sql, CommandBehavior.CloseConnection); try { 	//Executaumainstruçãoquegera exception throw new Exception(“Whatever”); }finally{ dr.Close(); } }
Errado #2 private void Foo() { try { 	//Executa uma operação que lança exceção } catch (Exception ex) { 	string Message = ex.Message; 	throw ex; } } Certo #2 private void Foo() { try { 	//Executa uma operação que lança exceção } catch (Exception ex) { 	string Message = ex.Message; 	throw; } }
Logging/Debugging
var exemplo = (x => x.Log4Net) 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>
Contato Email:antonio.zegunis@fnac.com.br ou me@tucaz.net Blog: 	http://blog.tucaz.net Twitter: 	http://www.twitter.com/tucaz Referências http://msdn.microsoft.com/en-us/library/ff647787.aspx http://msdn.microsoft.com/en-us/library/ff649308.aspx http://msdn.microsoft.com/en-us/library/ms229014%28VS.80%29.aspx http://blog.tucaz.net/en/2009/07/21/basic-stuff-handling-exceptions-in-net/ http://logging.apache.org/log4net/release/manual/configuration.html http://haacked.com/archive/2005/03/07/ConfiguringLog4NetForWebApplications.aspx http://intrafnac.fnac.br/dosi/sistemas/WikiSistemas/Paginas%20Wiki/Home.aspx http://intrafnac.fnac.br/dosi/sistemas/WikiSistemas/Paginas%20Wiki/Tratamento%20de%20Exceções.aspx

More Related Content

Viewers also liked

Teachingportfolio 2009
Teachingportfolio 2009Teachingportfolio 2009
Teachingportfolio 2009
aileenwilson
 
Bel campos cristina_pac1.0_avaini_doc
Bel campos cristina_pac1.0_avaini_docBel campos cristina_pac1.0_avaini_doc
Bel campos cristina_pac1.0_avaini_doc
Cristina Campos
 
Sedlcarter
SedlcarterSedlcarter
Sedlcarter
hdahedo
 
Responsive IT and Connected Business
Responsive IT and Connected BusinessResponsive IT and Connected Business
Responsive IT and Connected Business
Chris Haddad
 
Funnypic (1)
Funnypic (1)Funnypic (1)
Funnypic (1)
rovuks
 
Search and Social Collide and Merge : Collision Course
Search and Social Collide and Merge : Collision CourseSearch and Social Collide and Merge : Collision Course
Search and Social Collide and Merge : Collision Course
OMcareers Community
 

Viewers also liked (20)

Slides MES6 Plenary Jf Matos Slideshare
Slides MES6 Plenary Jf Matos SlideshareSlides MES6 Plenary Jf Matos Slideshare
Slides MES6 Plenary Jf Matos Slideshare
 
Developing A Website with evoloop
Developing A Website with evoloopDeveloping A Website with evoloop
Developing A Website with evoloop
 
Teachingportfolio 2009
Teachingportfolio 2009Teachingportfolio 2009
Teachingportfolio 2009
 
Business plan-startup
Business plan-startupBusiness plan-startup
Business plan-startup
 
Bel campos cristina_pac1.0_avaini_doc
Bel campos cristina_pac1.0_avaini_docBel campos cristina_pac1.0_avaini_doc
Bel campos cristina_pac1.0_avaini_doc
 
911
911911
911
 
הגדרת משפחת Nexus סיסקו 20.2.2011
הגדרת משפחת Nexus   סיסקו 20.2.2011הגדרת משפחת Nexus   סיסקו 20.2.2011
הגדרת משפחת Nexus סיסקו 20.2.2011
 
Search Analytics presented by Vivek Bhargava (founder, Communicate2) at OMCAR...
Search Analytics presented by Vivek Bhargava (founder, Communicate2) at OMCAR...Search Analytics presented by Vivek Bhargava (founder, Communicate2) at OMCAR...
Search Analytics presented by Vivek Bhargava (founder, Communicate2) at OMCAR...
 
Guaranteed Income for Retirement
Guaranteed Income for RetirementGuaranteed Income for Retirement
Guaranteed Income for Retirement
 
Amber Profile
Amber ProfileAmber Profile
Amber Profile
 
Scale Cloud across Enterprise
Scale Cloud across EnterpriseScale Cloud across Enterprise
Scale Cloud across Enterprise
 
Sedlcarter
SedlcarterSedlcarter
Sedlcarter
 
Responsive IT and Connected Business
Responsive IT and Connected BusinessResponsive IT and Connected Business
Responsive IT and Connected Business
 
הגדרת נתבי סיסקו 1.0
הגדרת נתבי סיסקו 1.0הגדרת נתבי סיסקו 1.0
הגדרת נתבי סיסקו 1.0
 
Personal Branding
Personal BrandingPersonal Branding
Personal Branding
 
新乐小学四年级1班家长会
新乐小学四年级1班家长会新乐小学四年级1班家长会
新乐小学四年级1班家长会
 
Funnypic (1)
Funnypic (1)Funnypic (1)
Funnypic (1)
 
Search and Social Collide and Merge : Collision Course
Search and Social Collide and Merge : Collision CourseSearch and Social Collide and Merge : Collision Course
Search and Social Collide and Merge : Collision Course
 
Odyssey: The Business of Consulting
Odyssey: The Business of ConsultingOdyssey: The Business of Consulting
Odyssey: The Business of Consulting
 
Kendel Avaya-Fabric connect - Demo Lab Guide – SPB vIST-5
Kendel Avaya-Fabric connect - Demo Lab Guide – SPB vIST-5Kendel Avaya-Fabric connect - Demo Lab Guide – SPB vIST-5
Kendel Avaya-Fabric connect - Demo Lab Guide – SPB vIST-5
 

Similar to Café com Bug - 2ª Edição em 13/05/2010

(A11) LabMM3 - JavaScript - Subalgoritmos e scope
(A11) LabMM3 - JavaScript - Subalgoritmos e scope(A11) LabMM3 - JavaScript - Subalgoritmos e scope
(A11) LabMM3 - JavaScript - Subalgoritmos e scope
Carlos Santos
 
Combinando OO e Funcional em javascript de forma prática
Combinando OO e Funcional em javascript de forma práticaCombinando OO e Funcional em javascript de forma prática
Combinando OO e Funcional em javascript de forma prática
Milfont Consulting
 
LabMM3 - Aula teórica 09
LabMM3 - Aula teórica 09LabMM3 - Aula teórica 09
LabMM3 - Aula teórica 09
Carlos Santos
 
T11_LM3: Subalgoritmose colisões (2013-2014)
T11_LM3: Subalgoritmose colisões (2013-2014)T11_LM3: Subalgoritmose colisões (2013-2014)
T11_LM3: Subalgoritmose colisões (2013-2014)
Carlos Santos
 
Programacao Com Asp Ii
Programacao Com Asp   IiProgramacao Com Asp   Ii
Programacao Com Asp Ii
guest3118b2
 

Similar to Café com Bug - 2ª Edição em 13/05/2010 (20)

Ruby On Rails Regis
Ruby On Rails RegisRuby On Rails Regis
Ruby On Rails Regis
 
Ajax em java
Ajax em javaAjax em java
Ajax em java
 
Evento Front End SP - Organizando o Javascript
 Evento Front End SP - Organizando o Javascript Evento Front End SP - Organizando o Javascript
Evento Front End SP - Organizando o Javascript
 
Aula 2 - ASP
Aula 2 - ASPAula 2 - ASP
Aula 2 - ASP
 
JavaScript e JQuery para Webdesigners
JavaScript e JQuery para WebdesignersJavaScript e JQuery para Webdesigners
JavaScript e JQuery para Webdesigners
 
Palestra de segurança em PHP - Hacking
Palestra de segurança em PHP - HackingPalestra de segurança em PHP - Hacking
Palestra de segurança em PHP - Hacking
 
(A11) LabMM3 - JavaScript - Subalgoritmos e scope
(A11) LabMM3 - JavaScript - Subalgoritmos e scope(A11) LabMM3 - JavaScript - Subalgoritmos e scope
(A11) LabMM3 - JavaScript - Subalgoritmos e scope
 
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)Curso Desenvolvimento WEB com PHP - PHP (parte 1)
Curso Desenvolvimento WEB com PHP - PHP (parte 1)
 
Combinando OO e Funcional em javascript de forma prática
Combinando OO e Funcional em javascript de forma práticaCombinando OO e Funcional em javascript de forma prática
Combinando OO e Funcional em javascript de forma prática
 
Melhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQueryMelhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQuery
 
BDD com Easyb
BDD com EasybBDD com Easyb
BDD com Easyb
 
Beagajs
BeagajsBeagajs
Beagajs
 
Artigoajax
ArtigoajaxArtigoajax
Artigoajax
 
Offline Web com Service Workers - Sérgio Lopes
Offline Web com Service Workers - Sérgio LopesOffline Web com Service Workers - Sérgio Lopes
Offline Web com Service Workers - Sérgio Lopes
 
RubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direitoRubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direito
 
LabMM3 - Aula teórica 09
LabMM3 - Aula teórica 09LabMM3 - Aula teórica 09
LabMM3 - Aula teórica 09
 
T11_LM3: Subalgoritmose colisões (2013-2014)
T11_LM3: Subalgoritmose colisões (2013-2014)T11_LM3: Subalgoritmose colisões (2013-2014)
T11_LM3: Subalgoritmose colisões (2013-2014)
 
Aplicacoes Web Com AJAX
Aplicacoes Web Com AJAXAplicacoes Web Com AJAX
Aplicacoes Web Com AJAX
 
Conhecendo o Struts 2 - Java Tech Day 2007
Conhecendo o Struts 2 - Java Tech Day 2007Conhecendo o Struts 2 - Java Tech Day 2007
Conhecendo o Struts 2 - Java Tech Day 2007
 
Programacao Com Asp Ii
Programacao Com Asp   IiProgramacao Com Asp   Ii
Programacao Com Asp Ii
 

Recently uploaded

Recently uploaded (9)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

Café com Bug - 2ª Edição em 13/05/2010

  • 3. Escalabilidade Capacidade Máxima: 100 usuários 100 usuários = 100% 150 novos usuários Capacidade necessária: 250 usuários = 150%+!
  • 7. Load Balance 1 2 3 4 5 6
  • 10. A solução! Global.asax protected void Application_Error(object sender, EventArgs e){    Exception ex = Server.GetLastError();    RSLHandler handler = new RSLHandler().Configure();    handler.Handle(ex);}
  • 11. E o usuário ve isso...
  • 13. A solução! Web.Config: <customErrorsdefaultRedirect=“erroPadrao.html" mode="On"> <error statusCode=“403" redirect=“NaoPermitida.html"/> <error statusCode=“404" redirect=“NaoEncontrada.html"/> </customErrors>
  • 14. Errado #1 private void Salvar(UsuarionovoUsuario) { //Abreconexão com banco de dados DataReader dr = cmd.Execute(sql); //Executaumainstruçãoquegera exception throw new Exception(“Whatever”); } Certo #1 private void Salvar(UsuarionovoUsuario) { DataReader dr = cmd.ExecuteReader(sql, CommandBehavior.CloseConnection); try { //Executaumainstruçãoquegera exception throw new Exception(“Whatever”); }finally{ dr.Close(); } }
  • 15. Errado #2 private void Foo() { try { //Executa uma operação que lança exceção } catch (Exception ex) { string Message = ex.Message; throw ex; } } Certo #2 private void Foo() { try { //Executa uma operação que lança exceção } catch (Exception ex) { string Message = ex.Message; throw; } }
  • 17. var exemplo = (x => x.Log4Net) 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>
  • 18. Contato Email:antonio.zegunis@fnac.com.br ou me@tucaz.net Blog: http://blog.tucaz.net Twitter: http://www.twitter.com/tucaz Referências http://msdn.microsoft.com/en-us/library/ff647787.aspx http://msdn.microsoft.com/en-us/library/ff649308.aspx http://msdn.microsoft.com/en-us/library/ms229014%28VS.80%29.aspx http://blog.tucaz.net/en/2009/07/21/basic-stuff-handling-exceptions-in-net/ http://logging.apache.org/log4net/release/manual/configuration.html http://haacked.com/archive/2005/03/07/ConfiguringLog4NetForWebApplications.aspx http://intrafnac.fnac.br/dosi/sistemas/WikiSistemas/Paginas%20Wiki/Home.aspx http://intrafnac.fnac.br/dosi/sistemas/WikiSistemas/Paginas%20Wiki/Tratamento%20de%20Exceções.aspx