Aula 22 Tratamento de Exceções

Tamanho: px
Começar a partir da página:

Download "Aula 22 Tratamento de Exceções"

Transcrição

1 Aula 22 Tratamento de Exceções Alessandro Garcia LES / DI / PUC-Rio Junho / 2016 Avisos Trabalho T4 enunciado completo está disponível: devem estar em andamento: conclusão da implementação do jogo agora: teste do módulo Lista deve satisfazer critério de cobertura de arestas entrega: até 30/6 Prova P2: 22/6 Próxima aula: entrega dos exercícios corrigidos do T3 1 1

2 Sumário Definições básicas Como se encerram as funções? Problema: e quando funções não encerram corretamente? Tratamento de exceções Tipos de tratadores Como tratar exceções Em C Em linguagens de programação contemporâneas 2 Relembrando - Definições básicas O que é uma função? Função é uma porção auto-contida de código que: possui um nome que pode ser chamado (ativado) de diversos lugares pode retornar zero ou mais valores pode depender de e alterar zero ou mais parâmetros pode alterar zero ou mais valores do estado do módulo variáveis internas variáveis globais pode criar, ler e destruir arquivos, etc... TIPO_RETORNO NOME_FUNCAO ( LISTA_PARAMETROS) { CORPO_FUNCAO 3 2

3 Definições básicas Encerrando a execução de uma função: Chegar ao fim de uma função void O comando return <VALUE> Encerra a execução de uma função imediatamente Se um valor de retorno é informado, a função chamada (callee) retorna este valor para a função chamadora (caller) A transferência de controle após o return passa da função chamada para a função chamadora O comando exit(int) Encerra a execução do programa 1. Executa em ordem reversa todas as funções registradas pela função int atexit( void (*func)(void) ) 2. Todos arquivos são fechados, todos arquivos temporários são apagados 3. O controle de execução retorna ao ambiente-hospedeiro (host enviornment) o valor inteiro passado como argumento 4 Problema Exceção: Uma exceção é um evento que ocorre durante a execução de um programa (ou módulo) e que impede a sua execução normal E o que fazer quando uma exceção impede que uma função encerre sua execução corretamente? Quais são situações de erro? 5 3

4 Problema Exemplos: Um parâmetro de entrada ocasiona uma divisão por zero Um valor de um dos parâmetros ou variáveis viola assertivas de entrada, saída Uma das assertivas estruturais é violada Não há memória disponível quando você tenta alocar memória dinamicamente Hardware para de funcionar corretamente 6 Tratamento de exceções Por que é importante tratar exceções? Você pode irritar o seu usuário 7 4

5 Tratamento de exceções Por que é importante tratar exceções? Os usuários podem perder a confiança no seu produto... e você pode passar uma tremenda vergonha! 8 Tratamento de exceções Sistemas atuais são cada vez maiores e mais complexos Condições excepcionais podem surgir por diversos motivos e serem até mesmo difíceis de serem previstas Sistemas robustos e confiáveis devem prover seus serviços mesmo sob condições excepcionais Sistemas críticos: Sistemas bancários Controladores de redes elétricas, vôo, usinas nucleares... Sistemas embarcados em aviões, submarinos, foguetes... O tratamento de exceções é parte central do desenvolvimento de sistemas robustos e confiáveis 9 5

6 Tratamento de exceções - Caso de insucesso Em outubro de 1996 o foguete francês Ariane 501 se autodestruiu 5 minutos após decolar Motivo: cálculo errado do ângulo de ataque Causa: O Ariane 5 reutilizou um módulo do Ariane 4 para calcular o Alinhamento Interno, elemento relacionado com a componente horizontal da velocidade O valor gerado pelo módulo do Ariane 4 foi muito maior do que o esperado pelo módulo do Ariane 5, pois a trajetória do Ariane 5 difere da trajetória do Ariane 4 O módulo do Ariane 5 tentou converter o valor do Alinhamento Interno de um número de 64 bits em ponto flutuante para um inteiro de 16 bits com sinal Valor em ponto flutuante era maior do que poderia ser representado por um inteiro Operação de conversão não estava protegida e ocasionou Overflow Exception 10 Tratamento de exceções Vídeo do Bill Gates: Vídeo do Ariane 5: Outros desastres famosos devido ao não tratamento de exceções

7 Tratamento de exceções Por que é importante tratar exceções? Pode custar milhões de dólares/reais/euros Ou até mesmo vidas 12 Tratamento de exceções - Terminologia Exceção: Uma exceção é um evento que ocorre durante a execução de um programa (ou módulo) e que impede a sua execução normal Uma exceção indica que o estado interno do sistema está inconsistente e, por isso, não é possível prosseguir com sua execução normal Para restaurar a consistência interna do sistema, é necessário tomar ações corretivas, ou remediadoras Tratador: Um tratador é um conjunto de ações que visam corrigir ou remediar a ocorrência de uma exceção Mecanismo de tratamento de exceções: Um mecanismo de tratamento de exceções é um modelo que permite a desenvolvedores: Representar os tipos de ocorrências de exceção Indicar a ocorrência de uma exceção na interface de funções/módulos Detectar a ocorrência de uma exceção na execução da função Estruturar ações de tratamento de exceções Desviar o fluxo normal do programa para o fluxo excepcional 13 7

8 Estrutura de uma função Conjunto de exceções sinalizadas na interface em C: condições de retorno excepcionais Chamadas Função Tratador E1 Tratador E2 Tratador E3 Chamadas Exceções exs.: nome de arquivo não existe, índice/chave fora do limite, conexão com servidor/banco-dados não pode ser estabelecida, etc... Maio 2009 Alessandro Garcia LES/DI/PUC-Rio 14/ 32 Tratamento de exceções Exemplos de tratadores: Ignora a exceção: identifica a ocorrência de uma exceção e não toma nenhuma ação corretiva. Má prática e deve ser evitada. Re-sinaliza a exceção: identifica um tipo de exceção e reporta para a função chamadora outro tipo de exceção. Geralmente é usada para preservar abstração e encapsulamento. Delegação de controle: delega o controle da execução para outro módulo do sistema mais apto a lidar com a exceção. Notificação ao usuário: notifica o usuário a ocorrência da exceção, com possibilidade de pedir novo input, caso seja possível. Preferencialmente, somente em casos que usuário deve ser envolvido. Armazenamento de erro: cria um registro da exceção e de informações adicionais em arquivo especial (log). Reconfiguração: reconfigura o estado do sistema com outros valores. Nova tentativa: a mesma função é simplesmente invocada novamente. (ex. exceções intermitentes do ambiente rede WiFi) 15 8

9 Tratamento de exceções Exemplos de tratadores: Liberação de recursos: assegura a liberação de recursos alocados, como memória alocada dinamicamente, arquivos e conexões abertos, etc. Preparação para desligar: prepara o sistema para terminar sem causar efeitos colaterais. Geralmente é usada em situações extremas. É necessário liberar todos os recursos alocados e reverter o sistema para um estado em que os dados estão consistentes. Recuperação por retrocesso: desfaz modificações no estado do sistema a fim de restaurá-lo a um estado válido. Comumente usado em sistemas de bancos de dados. Uso de redundância de software: ativa uma função com o mesmo propósito. Uso de redundância de dados: uso de elementos adicionais da estrutura que permitam navegar de outras formas na estrutura. Vide estruturas auto-verificáveis. 16 Como tratar exceções em módulos em C? A linguagem C não traz suporte específico para tratamento de exceções Fica sob responsabilidade do programador desenvolver uma forma de identificar e tratar exceções da aplicação Existem várias formas de realizar esta tarefa, cada um com seus prós e contras A fim de padronizar a identificação e o tratamento de exceções em C, usamos nesta disciplina padrões/convenções de tratamento de exceções: Tipos enum e código de retorno das funções para indicar sob qual condição a função encerrou sua execução Se necessários, define-se parâmetros adicionais passados por referência e modifica-se seus valores para informações extra do erro 17 9

10 Usando o código de retorno das funções Este é o método mais comum e mais simples de tratamento de exceções em linguagem C Neste método, as funções tem duas responsabilidades: A função chamada deve usar o comando return para indicar sob qual condição (normal excepcional) sua execução encerrou A função chamadora deve testar o código retornado pela função chamada a fim de tomar ações corretivas, caso necessário Preferencialmente, as condições de retorno devem ser declaradas como um elemento enum 18 Usando o código de retorno das funções typedef enum { LIS_CondRetOK, /* Concluiu corretamente */ LIS_CondRetListaVazia, /* A lista não contém elementos */ LIS_CondRetFimLista, /* Foi atingido o fim de lista */ LIS_tpCondRet LIS_InserirElementoAntes ( LIS_tppLista plista, void * pvalor ) { tpelemlista * pelem ; pelem = CriarElemento( plista, pvalor ) ; if ( pelem == NULL ) { return LIS_CondRetFaltouMemoria ; /* if */ LIS_CondRetNaoAchou, /* Não encontrou o valor procurado */ LIS_CondRetFaltouMemoria /* Faltou memória ao tentar criar um elemento de lista */ LIS_tpCondRet ;... return LIS_CondRetOK ; /* Fim função: LIS &Excluir elemento */ 19 10

11 Usando o código de retorno das funções int main(void){... LIS_tpCondRet condret = InserirElementoAntes( lista, pvalor ); switch( condret ) { case LIS_CondRetFaltouMemoria:... case LIS_CondRetOK:... default : printf( Condição de retorno inesperada ); 20 Usando parâmetro passado por referência LIS_tpCondRet LIS_InserirElementoAntes ( LIS_tppLista plista, void * pvalor, char ** errormsg ) { tpelemlista * pelem ; pelem = CriarElemento( plista, pvalor ) ; if ( pelem == NULL ) { char str[] = Não foi possível alocar memória para um novo elemento ; int size = strlen( str ) + 1; (*errormsg) = (char*)malloc( sizeof(char) * size ); memcpy( (*errormsg), str, size ); return LIS_CondRetFaltouMemoria ; /* if */... return LIS_CondRetOK ; /* Fim função: LIS &Excluir elemento */ 21 11

12 Exemplo de condição de retorno Servidor typedef enum { CondRetLeuOK, /* Leitura normal */ CondRetLeuEOF, /* Encontrou fim de arquivo antes de ler */ CondRetLeuErro /* Ocorreu erro de leitura */ tpcondretleu ;... tpcondretleu LerReg( FILE * parq, tpreg * preg ) { if ( feof( parq )) { memset( preg, 0xFF, sizeof( tpreg )) ; return CondRetLeuEOF ; /* if */ Conta = fread( preg, parq, sizeof( tpreg ), 1 ) ; if ( ( ferror( parq )!= 0 ) ( Conta!= 1 )) { memset( preg, 0xCC, sizeof( tpreg )) ; return CondRetLeuErro ; /* if */ return CondRetLeuOK ; /* Função LerReg */ Maio 2009 Alessandro Garcia LES/DI/PUC-Rio 22/ 32 Exemplo de condição de retorno A função cliente contém o código: Cond = LerReg( parqa, pbuffer ) ; switch ( Cond ) { case CondRetLeuOK : /* código que trata o caso de leitura normal */ break ; case CondRetLeuEOF : /* código que trata o caso de fim de arquivo */ break ; case CondRetLeuErro : printf( "\nerro de leitura no arquivo: %s código \'C\' %c", NomeArqA, errno ) ; printf( "\nprograma será cancelado" ) ; Finalizar( CondRetLeuErro ) ; default: printf( "\Erro de execução: LerReg condição desconhecida: %i", Cond ) ; printf( "\nprograma será cancelado" ) ; Finalizar( ErroDesconhecido ) ; /* fim switch */ o break é desnecessário, pois Finalizar( ) não retorna Maio 2009 Alessandro Garcia LES/DI/PUC-Rio 23/ 32 12

13 Usando parâmetro passado por referência int main(void){... char *errormsg; LIS_tpCondRet condret = InserirElementoAntes( lista, pvalor, &errormsg ); switch( condret ) { case LIS_CondRetFaltouMemoria: printf( %s, errormsg ); case LIS_CondRetOK:... default : printf( Condição de retorno inesperada ); 24 Usando variáveis globais ou parâmetros Este método é complementar ao método de condições de retorno Bastante usado na GLIBC, biblioteca padrão do sistema GNU/Linux Neste método, as funções tem as seguintes responsabilidades: A função chamada deve modificar variáveis globais ou parâmetros passados por referência para indicar sob qual condição (normal excepcional) sua execução encerrou A função chamadora deve testar a variável global, ou o parâmetro passado por referência, a fim de tomar ações corretivas, caso necessário 25 13

14 Limitações de C A sinalização de uma exceção não é explícita Usa-se o comando return, parâmetros passados por referência ou variáveis globais Não há distinção entre encerramento sob condição normal ou excepcional O sistema não é interrompido no momento em que a exceção ocorre Mesmo sabendo-se que o estado é inconsistente Como prover mais informações a respeito do problema / exceção? Ex.: Qual a severidade? Que condições levaram a esta ocorrência? Uso de parâmetros encoraja quebra de abstração e encapsulamento 26 Limitações de C Há um overhead na criação de tipos enumerados para cada módulo Para cada módulo é definido um tipo enumerado, mesmo que representem a mesma condição (EX.: Falta de memória) A associação entre as exceções descritas nos tipos enumerados e quais exceções que podem ser levantadas por uma função depende exclusivamente da especificação da função Difícil entender o acoplamento excepcional entre funções: quais exceções devem ser tratadas? Não há separação textual do código de tratamento de exceção Código torna-se rapidamente extenso, complexo e pouco compreensível 27 14

15 Mecanismo de Tratamento de Exceções Comportamento exceptional de funções diferente de C, C++ e Java provêem suporte explícito a tratamento de exceções Facilidades / Mecanismos para Tratamento de Exceções Exceções Tratadores (Handlers) Desvio do Fluxo e Busca de Tratadores Interfaces Excepcionais Definição de Regiões Protegidas Maio 2009 Alessandro Garcia LES/DI/PUC-Rio 28/ 32 Usando o código de retorno das funções Problemas: Chamadas encadeadas de funções podem resultar em uma estrutura muito aninhada que é difícil de compreender, testar e fazer a manutenção ARQ_tpCondRet learquivo(){ condret = OK; abrearquivo(); se( arquivoaberto() ){ determinetamanhoarquivo(); se( determinoutamanho() ){ aloquememoria(); se( alocoumemoria() ){ copiedados(); se(! copioudados() ){ condret = ERRO_COPIAR_DADOS; senão { condret = ERRO_ALOCAR_MEM; senão { condret = ERRO_DET_TAM; fechearquivo(); se(! fechouarquivo() ){ condret = ERRO_FECHAR_ARQ; senão { condret = ERRO_ABRIR_ARQ; 29 15

16 Linguagens contemporâneas Linguagens como Java, JavaScript, C++, C#, Python... proveem mecanismos de tratamento de exceções implementados na própria linguagem Elementos sintáticos específicos para tratamento de exceções: THROW sinaliza a ocorrência de uma exceção TRY define uma região protegida contra a ocorrência de exceções CATCH define um tratador, i.e., um trecho de código que implementa um conjunto de ações de recuperação 30 Sinalização explícita de exceções Cláusula throw sinaliza a ocorrência de uma exceção static void escrevearquivo(arquivo a)... {... Buffer bf = buscaarquivo( a ); if( bf == null ) throw new FileNotFoundException(); 31 16

17 Estrutura de uma função em Java/C++ Exceções são levantadas/sinalizadas explicitamente int funcaox (...) { // código desprotegido try { // código a ser tentado; região protegida if (x > 10) {throw excecao; catch (Excecao) { // código do tratador: a ser executado // em caso de exceção if (x > 10) {throw excecao2; acoplamento: exceção sinalizada Maio 2009 Alessandro Garcia LES/DI/PUC-Rio 32/ 32 Linguagens contemporâneas Linguagens como Java, JavaScript, C++, C#, Python... provêem mecanismos de tratamento de exceções implementados na própria linguagem Elementos sintáticos específicos para tratamento de exceções: TRY define uma região protegida contra a ocorrência de exceções CATCH define um tratador, i.e., um trecho de código que implementa um conjunto de ações de recuperação THROW sinaliza a ocorrência de uma exceção THROWS especifica na interface de uma função quais as possíveis exceções que podem ser ocasionadas durante a execução daquela função do módulo 33 17

18 Estrutura de uma função em Java Acoplamento conjunto de exceções sinalizadas exceções são sinalizadas explicitamente em Java class Count { public static void main(string args[]) throws java.io.ioexception { int count = 0; while (System.in.read()!= -1) count++; System.out.println("Entrada:"+count+ "caracteres."); acoplamento: exceção sinalizada Maio 2009 Alessandro Garcia LES/DI/PUC-Rio 34/ 32 Acoplamento excepcional explícito Cláusula throws indica quais exceções podem ocorrer durante a execução de uma função void escrevearquivo(arquivo) throws FileNotFoundException, CharCodingException, PermissionException; 35 18

19 Linguagens contemporâneas Linguagens como Java, JavaScript, C++, C#, Python... provêem mecanismos de tratamento de exceções implementados na própria linguagem Elementos sintáticos específicos para tratamento de exceções: TRY define uma região protegida contra a ocorrência de exceções CATCH define um tratador, i.e., um trecho de código que implementa um conjunto de ações de recuperação THROW sinaliza a ocorrência de uma exceção THROWS especifica na interface de uma função quais as possíveis exceções que podem ser ocasionadas durante a execução daquela função do módulo FINALLY define um trecho de código que sempre será executado, mesmo quando exceções ocorrerem 36 Mecanismo para código de limpeza O código definido no bloco finally sempre será executado, seja após a terminação normal, ou após a terminação excepcional, de um bloco try Usado especialmente para liberação de recursos, como memória, arquivos abertos, conexões abertas, etc learquivo(){ try{ abrearquivo(); determinetamanhoarquivo(); aloquememoria(); copiedados(); catch( abrirerro ){... catch( determinartamanhoerro ) {... catch( alocarmemoriaerro ) {... catch( copiardadoserro ) {... finally { try{ fechearquivo(); catch( fechararquivoerro ){

20 Melhor separação textual ARQ_tpCondRet learquivo(){ condret = OK; abrearquivo(); se( arquivoaberto() ){ determinetamanhoarquivo(); se( determinoutamanho() ){ aloquememoria(); se( alocoumemoria() ){ copiedados(); se(! copioudados() ){ condret = ERRO_COPIAR_DADOS; senão { condret = ERRO_ALOCAR_MEM; senão { condret = ERRO_DET_TAM; fechearquivo(); se(! fechouarquivo() ){ condret = ERRO_FECHAR_ARQ; senão { condret = ERRO_ABRIR_ARQ; learquivo(){ try{ abrearquivo(); determinetamanhoarquivo(); aloquememoria(); copiedados(); catch( abrirerro ){... catch( determinartamanhoerro ) {... catch( alocarmemoriaerro ) {... catch( copiardadoserro ) {... finally { try{ fechearquivo(); catch( fechararquivoerro ){ Linguagens contemporâneas Principais vantagens em relação a C: Redução do aninhamento de estruturas if-then-else Melhor separação textual entre o código que implementa a lógica da aplicação e o código que implementa o tratamento de exceções Também há uma clara distinção entre o encerramento normal de uma função ( comando return ) e o encerramento excepcional ( comando throw ) Tipos de exceção podem ser reutilizadas entre diferentes módulos Mecanismos que garantem a execução de determinados trechos de código tanto em situações normais, quanto em situações excepcionais Blocos finally Liberação de recursos 39 20

21 Linguagens contemporâneas Mesmo com os mecanismos de tratamento de exceções providos na própria linguagem, código de tratamento de exceções ainda é fonte de erros: Dificuldade em modificar métodos que tratam exceções Tratadores vazios (catch block vazio) Exceções não tratadas Erros no código de tratamento de exceções são de difícil diagnose Código pouco executado e pouco testado Implementar tratamento de exceções não é trivial e requer esforço extra dos desenvolvedores 40 Tratamento de Exceções: Origem indicação de ocorrência de exceção associação do tratador PL/I ON statements Goodenough EH Notation CLU Declaração explícita De interface excepcional Parnas & Dijkstra Princípio de Encapsulamento e Separação de Interesses Tratamento de Exceções em Linguagens Modernas Nelio Cacho 21

22 Referência Cap. 8 do livro Programação Modular Leitura complementar: Tutorial sobre tratamento de exceções em Java ions/index.html Artigos Discovering Faults in Idiom-Based Exception Handling, Bruntink, M., van Deursen, A. and Tourwé, T. In Proceedings of 28th ICSE, Exception handling: a field study in Java and.net, Cabral, B. and Marques, P. In Proceedings of 21th ECOOP, FIM 22

Aula 16 Tratamento de Exceções. Eiji Adachi Barbosa LES / DI / PUC-Rio Outubro / 2013

Aula 16 Tratamento de Exceções. Eiji Adachi Barbosa LES / DI / PUC-Rio Outubro / 2013 Aula 16 Tratamento de Exceções Eiji Adachi Barbosa LES / DI / PUC-Rio Outubro / 2013 Avisos Na aula do dia 23/10 (quarta-feira) os alunos que ainda não viram a prova, poderão ver em sala após a aula Na

Leia mais

Aula 17 Tratamento de Exceções e Assertivas

Aula 17 Tratamento de Exceções e Assertivas Aula 17 Tratamento de Exceções e Assertivas Alessandro Garcia LES / DI / PUC-Rio Novembro / 2016 Sumário Definições básicas Como se encerram as funções? Problema: e quando funções não encerram corretamente?

Leia mais

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery Agenda Regras paravariáveis Identificadores Válidos Convenção de Nomenclatura Palavras-chaves em Java Tipos de Variáveis em

Leia mais

Aula 19 Estrutura de Funções - 1

Aula 19 Estrutura de Funções - 1 Aula 19 Estrutura de Funções - 1 Alessandro Garcia LES/DI/PUC-Rio Maio 2010 Avisos No fim da aula entrega da prova corrigida e nota Trabalhos T3: enunciado está disponível como já sabem: basicamente, completar

Leia mais

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares Especialização em desenvolvimento para web com interfaces ricas Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares Objetivos Conceito de exceções Tratar exceções pelo uso de try, catch e

Leia mais

1.6. Tratamento de Exceções

1.6. Tratamento de Exceções Paradigmas de Linguagens I 1 1.6. Tratamento de Exceções Uma exceção denota um comportamento anormal, indesejado, que ocorre raramente e requer alguma ação imediata em uma parte do programa [GHE 97, DER

Leia mais

Algoritmos e Programação

Algoritmos e Programação Universidade Federal do Vale do São Francisco Curso de Engenharia da Produção / Elétrica Algoritmos e Programação Parte 05 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti

Leia mais

Introdução a Computação

Introdução a Computação Introdução a Computação Aula 02 Introdução a Linguagem C Edirlei Soares de Lima Lógica de Programação Lógica de Programação é a técnica de criar sequências lógicas de ações para

Leia mais

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre Cap. 02 Fundamentos de Linguagens Sumário : Linguagem, alfabeto e gramática

Leia mais

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 5. Tratamento de Exceções Introdução e conceitos Capturando exceção usando

Leia mais

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação Linguagem C: variáveis, operadores, entrada/saída Prof. Críston Algoritmos e Programação Linguagem C Linguagem de uso geral (qualquer tipo de aplicação) Uma das linguagens mais utilizadas Foi utilizada

Leia mais

Programação Estruturada e Orientada a Objetos. Tratamento de Exceções

Programação Estruturada e Orientada a Objetos. Tratamento de Exceções Programação Estruturada e Orientada a Objetos Tratamento de Exceções 2013 O que veremos hoje? Introdução Tratamento de exceções Exercícios Transparências baseadas no material do Prof. Gilbert Azevedo Referencias

Leia mais

9 Comandos condicionais

9 Comandos condicionais 9 Comandos condicionais Um comando condicional é uma instrução empregada quando se deseja criar um desvio, isto é, a opção de executar-se ou não um determinado trecho de código, segundo uma condição. Em

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel As 52 Palavras Reservadas O que são palavras reservadas São palavras que já existem na linguagem Java, e tem sua função já definida. NÃO podem

Leia mais

Linguagem C. TGSI Lógica de Programação / Linguagem C Prof. Marcos Roberto

Linguagem C. TGSI Lógica de Programação / Linguagem C Prof. Marcos Roberto Linguagem C O C nasceu na década de 70. Seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando um DEC PDP-11 rodando o sistema operacional UNIX. O C é derivado de uma outra linguagem: o B,

Leia mais

Exercícios de Revisão Java Básico

Exercícios de Revisão Java Básico Exercícios de Revisão Java Básico (i) Programação básica (estruturada) 1) Faça um programa para calcular o valor das seguintes expressões: S 1 = 1 1 3 2 5 3 7 99... 4 50 S 2 = 21 50 22 49 23 48...250 1

Leia mais

15 a Aula Subprogramação /Subalgoritmos Função e Procedimento

15 a Aula Subprogramação /Subalgoritmos Função e Procedimento FISP 1/6 15 a Aula Subprogramação /Subalgoritmos Função e Procedimento Objetivo: Simplificação e racionalização na elaboração de algoritmos mais complexos Recursos: Estruturação de algoritmos e modularização

Leia mais

Linguagens de Programação Aula 10

Linguagens de Programação Aula 10 Linguagens de Programação Aula 10 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada As sentenças de controle das LP imperativas ocorrem em diversas categorias: seleção, seleção múltipla, iteração

Leia mais

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS João Gabriel Ganem Barbosa Sumário Motivação História Linha do Tempo Divisão Conceitos Paradigmas Geração Tipos de Dados Operadores Estruturada vs

Leia mais

insfcanceof new public switch transient while byte continue extends for int null

insfcanceof new public switch transient while byte continue extends for int null Palavras -chave de JAV A abstract catch do final implements long private static throw void boolean char double finally import native protected super throws volatile break class float insfcanceof new public

Leia mais

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a

Leia mais

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this. Aula 2 Objetivos Encapsulamento na linguagem Java; Utilizando a referência this. Encapsulamento, data hiding é um conceito bastante importante em orientação a objetos. É utilizado para restringir o acesso

Leia mais

Desenvolvimento OO com Java Orientação a objetos básica

Desenvolvimento OO com Java Orientação a objetos básica Desenvolvimento OO com Java Orientação a objetos básica Vítor E. Silva Souza (vitor.souza@ufes.br) http://www.inf.ufes.br/~vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal

Leia mais

Introdução à Programação. Armazenamento de Grande Quantidade de Informação Usando Vetores

Introdução à Programação. Armazenamento de Grande Quantidade de Informação Usando Vetores Introdução à Programação Armazenamento de Grande Quantidade de Informação Usando Vetores Armazenando Grande Quantidade de Informação Como armazenar tanta informação? Vetores! 2 Tópicos da Aula Hoje, aprenderemos

Leia mais

Aula 06 Introdução à Teste de Módulos II e Exercícios. Alessandro Garcia LES/DI/PUC-Rio Março 2014

Aula 06 Introdução à Teste de Módulos II e Exercícios. Alessandro Garcia LES/DI/PUC-Rio Março 2014 Aula 06 Introdução à Teste de Módulos II e Exercícios Alessandro Garcia LES/DI/PUC-Rio Março 2014 Princípios Discutidos até aqui Cada módulo deveria implementar uma única abstração similarmente: cada função

Leia mais

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica Introdução a Programação Ponteiros e Strings, Alocação Dinâmica Tópicos da Aula Hoje aprenderemos a relação entre ponteiros e strings Ponteiros para strings X Vetores de Caracteres Vetores de ponteiros

Leia mais

Programação Estruturada. Programação Estruturada. Idéias Básicas da Programação Estruturada

Programação Estruturada. Programação Estruturada. Idéias Básicas da Programação Estruturada Programação Estruturada Programação Estruturada Paradigmas de Linguagens de Programação As linguagens desse paradigma são muitas vezes chamadas de linguagens convencionais, procedurais ou imperativas.

Leia mais

BC0505 Processamento da Informação

BC0505 Processamento da Informação BC0505 Processamento da Informação Assunto: Modularização de código e passagem de parâmetros Aula Prática: 4 Versão: 0.2 Introdução Modularização No Java, como em outras linguagens de Programação Orientadas

Leia mais

Tópicos Avançados em Banco de Dados Gerenciamento de Transações em Banco de Dados. Prof. Hugo Souza

Tópicos Avançados em Banco de Dados Gerenciamento de Transações em Banco de Dados. Prof. Hugo Souza Tópicos Avançados em Banco de Dados Gerenciamento de Transações em Banco de Dados Prof. Hugo Souza Até agora vimos como é formada a infraestrutura física e lógica das bases de dados com os principais componentes

Leia mais

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc. Sintaxe Geral Tipos de Dados Comentários Comentários: De linha: // comentário 1 // comentário 2 De bloco: /* linha 1 linha 2 linha n */ De documentação: /** linha1 * linha2 */ Programa Exemplo: ExemploComentario.java

Leia mais

INF 1007 Programação II

INF 1007 Programação II INF 1007 Programação II Aula 05 Cadeias de Caracteres Edirlei Soares de Lima Caracteres Caracteres são representados através de códigos numéricos. Tabela de códigos: Define correspondência

Leia mais

Nível da Arquitetura do Conjunto das Instruções

Nível da Arquitetura do Conjunto das Instruções Nível da Arquitetura do Conjunto das Instruções (Aula 13) Fluxo de Controle Fluxo Seqüencial de Controle e Desvios (1) Fluxo de Controle: É a seqüência na qual instruções são dinamicamente executadas Isto

Leia mais

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Computadores Digitais 2. Prof. Rodrigo de Souza Couto Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Aula de Hoje Cadeias de caracteres (strings) Caracteres Definição e manipulação de strings Vetor de strings Parâmetros

Leia mais

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp Java Básico Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp Classes Abstratas construção de uma classe abstrata construção de classes derivadas Classes e Herança Uma classe define

Leia mais

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW Ciclo de Vida Aula 2 Revisão 1 Processo de Desenvolvimento de Software 1 O Processo de desenvolvimento de software é um conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto

Leia mais

Engenharia de Software II

Engenharia de Software II Engenharia de Software II Aula 14 Revisão http://www.ic.uff.br/~bianca/engsoft2/ Aula 14-07/05/2006 1 Processo de Software Qual é a diferença entre uma atividade de arcabouço e uma atividade guarda chuva?

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO Santa Maria, 01 de Novembro de 2013. Revisão aula passada Projeto de Arquitetura Decisões de projeto de Arquitetura

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 01 Orientação a Objetos Edirlei Soares de Lima Paradigmas de Programação Um paradigma de programação consiste na filosofia adotada na

Leia mais

INTRODUÇÃO À LINGUAGEM C++

INTRODUÇÃO À LINGUAGEM C++ INTRODUÇÃO À LINGUAGEM C++ 1 - VARIÁVEIS Variáveis espaço de memória reservado para armazenar tipos de dados, com um nome para referenciar seu conteúdo. Observações importantes Todas as variáveis devem

Leia mais

Java Básico. Matrícula de Alunos. Marco Antonio, Arquiteto de Software TJDF ma@marcoreis.eti.br. Novembro/2005

Java Básico. Matrícula de Alunos. Marco Antonio, Arquiteto de Software TJDF ma@marcoreis.eti.br. Novembro/2005 Java Básico Matrícula de Alunos Marco Antonio, Arquiteto de Software TJDF ma@marcoreis.eti.br Novembro/2005 Objetivos OO: trocar mensagens entre os objetos Exception: tratar exceções Análise: implementar

Leia mais

O COMPUTADOR. Introdução à Computação

O COMPUTADOR. Introdução à Computação O COMPUTADOR Introdução à Computação Sumário O Hardware O Software Linguagens de Programação Histórico da Linguagem C Componentes Básicos do Computador O HARDWARE: O equipamento propriamente dito. Inclui:

Leia mais

Notas da Aula 6 - Fundamentos de Sistemas Operacionais

Notas da Aula 6 - Fundamentos de Sistemas Operacionais 1. Monitores Notas da Aula 6 - Fundamentos de Sistemas Operacionais Embora os semáforos sejam uma boa solução para o problema da exclusão mútua, sua utilização não é trivial. O programador é obrigado a

Leia mais

Tratamento de Exceções. Alberto Costa Neto DComp - UFS

Tratamento de Exceções. Alberto Costa Neto DComp - UFS Tratamento de Exceções Alberto Costa Neto DComp - UFS [ Conteúdo ] Introdução Hierarquia de Erros e Exceções Erros e Exceções predefinidos Bloco try Bloco finally Cláusula throws Lançando exceções Capturando

Leia mais

Algoritmo e Técnica de Programação - Linguagem C

Algoritmo e Técnica de Programação - Linguagem C Algoritmo e Técnica de Programação Linguagem C Gilbran Silva de Andrade 5 de junho de 2008 Introdução A liguagem C foi inventada e implementada por Dennis Ritchie em um DEC PDP-11 que utilizava o sistema

Leia mais

Computação II Orientação a Objetos

Computação II Orientação a Objetos Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Introdução Esse não é um curso de Java! O objetivo é aprender os conceitos da programação orientada a objetos,

Leia mais

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática Folha 1-1 Introdução à Linguagem de Programação JAVA 1 Usando o editor do ambiente de desenvolvimento JBUILDER pretende-se construir e executar o programa abaixo. class Primeiro { public static void main(string[]

Leia mais

compreender a importância de cada estrutura de controle disponível na Linguagem C;

compreender a importância de cada estrutura de controle disponível na Linguagem C; Aula 3 Estruturas de controle Objetivos Esperamos que, ao final desta aula, você seja capaz de: compreender a importância de cada estrutura de controle disponível na Linguagem C; construir programas em

Leia mais

Trabalho 3: Agenda de Tarefas

Trabalho 3: Agenda de Tarefas INF 1620 Estruturas de Dados Semestre 08.2 Trabalho 3: Agenda de Tarefas O objetivo deste trabalho é a implementação de um conjunto de funções para a manipulação de uma agenda de tarefas diárias, de forma

Leia mais

PROCESSOS. Prof. Maicon A. Sartin mapsartin@gmail.com

PROCESSOS. Prof. Maicon A. Sartin mapsartin@gmail.com PROCESSOS Prof. Maicon A. Sartin mapsartin@gmail.com Cenários em Sistemas Multitarefas Um usuário pode executar diversas atividades simultâneas Música Editoração de texto Navegar na Internet Servidor pode

Leia mais

Manual do Desenvolvedor Criptografia de Arquivos do WebTA

Manual do Desenvolvedor Criptografia de Arquivos do WebTA Manual do Desenvolvedor Criptografia de Arquivos do WebTA Versão 1.4 Índice 1. Objetivo..3 2. Processo..3 3. API de Criptografia - Biblioteca Java..4 3.1 WEBTACryptoUtil..4 3.1.1 decodekeyfile..4 3.1.2

Leia mais

PROJETO (OU DESIGN) DO SOFTWARE Diagrama de Estrutura

PROJETO (OU DESIGN) DO SOFTWARE Diagrama de Estrutura PROJETO (OU DESIGN) DO SOFTWARE Diagrama de Estrutura Auxiliadora Freire Fonte: Engenharia de Software 8º Edição / Ian Sommerville 2007 Slide 1 PROJETO (OU DESIGN) DO SOFTWARE Na fase de projeto (ou design)

Leia mais

Aula 12: Funções. Pré-requisitos: Todas as aulas anteriores deste módulo. 1. Aproveitando Códigos no Programa

Aula 12: Funções. Pré-requisitos: Todas as aulas anteriores deste módulo. 1. Aproveitando Códigos no Programa Aula 12: Funções Nesta aula explicaremos o que são e como usar funções nos seus programas em JavaScript. Você aprenderá como elas podem receber e retornar valores à estrutura que as acionou. Entenderá

Leia mais

1 Funções básicas de implementação de arquivos

1 Funções básicas de implementação de arquivos 1 Funções básicas de implementação de arquivos 1.1 Definindo registros Depois de um objeto do mundo real ter sido modelado, ou seja, após seus atributos importantes (e relevantes) terem sido identificados,

Leia mais

Módulo 02 Programação Orientada a Objetos. Última atualização: 07/06/2010

Módulo 02 Programação Orientada a Objetos. Última atualização: 07/06/2010 Módulo 02 Programação Orientada a Objetos Última atualização: 07/06/2010 1 Objetivos Definir conceitos de orientação a objetos: o abstração, encapsulamento, pacotes. Discutir reutilização de código em

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA Responda 1) Quem desenvolveu a linguagem C? Quando? 2) Existe alguma norma sobre a sintaxe da linguagem C? 3) Quais são os tipos básicos de dados disponíveis na linguagem C? 4) Quais são as principais

Leia mais

Guia de utilização da notação BPMN

Guia de utilização da notação BPMN 1 Guia de utilização da notação BPMN Agosto 2011 2 Sumário de Informações do Documento Documento: Guia_de_utilização_da_notação_BPMN.odt Número de páginas: 31 Versão Data Mudanças Autor 1.0 15/09/11 Criação

Leia mais

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu.

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu. Programação Estruturada Linguagem C Fundamentos da Linguagem Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu.br Sumário Estrutura Básica Bibliotecas Básicas Tipos de Dados Básicos Variáveis/Declaração

Leia mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação CP41F Conversão de tipos. Alocação dinâmica de memória. Recursão. Aula 16 Prof. Daniel Cavalcanti Jeronymo Universidade Tecnológica Federal do Paraná (UTFPR) Engenharia de Computação

Leia mais

ITIL v3 - Operação de Serviço - Parte 1

ITIL v3 - Operação de Serviço - Parte 1 ITIL v3 - Operação de Serviço - Parte 1 É na Operação de Serviço que se coordena e realiza as atividades e processos necessários para fornecer e gerenciar serviços em níveis acordados com o usuário e clientes

Leia mais

Guia de Fatores de Qualidade de OO e Java

Guia de Fatores de Qualidade de OO e Java Qualiti Software Processes Guia de Fatores de Qualidade de OO e Java Versã o 1.0 Este documento só pode ser utilizado para fins educacionais, no Centro de Informática da Universidade Federal de Pernambuco.

Leia mais

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Aula 09 Introdução à Java Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda da Aula Java: Sintaxe; Tipos de Dados; Variáveis; Impressão de Dados.

Leia mais

Programação de Computadores I. Linguagem C Arquivos

Programação de Computadores I. Linguagem C Arquivos Linguagem C Arquivos Prof. Edwar Saliba Júnior Novembro de 2011 Unidade 12 Arquivos 1 Trabalhando com Arquivos Um arquivo em Linguagem C pode representar diversas coisas, como: arquivos em disco, uma impressora,

Leia mais

PROGRAMAÇÃO ORIENTADA A OBJETO EM PHP

PROGRAMAÇÃO ORIENTADA A OBJETO EM PHP PROGRAMAÇÃO ORIENTADA A OBJETO EM PHP O PHP através da versão 5, veio desenvolvido com suporte a programação orientada a objetos. O que significa isso? Que a partir da versão 5 é possível criar bibliotecas

Leia mais

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia O Sistema Operacional que você usa é multitasking? Por multitasking, entende-se a capacidade do SO de ter mais de um processos em execução ao mesmo tempo. É claro que, num dado instante, o número de processos

Leia mais

Orientação a Objetos. Conceitos Iniciais Introdução a Linguagem Java. Gil Eduardo de Andrade

Orientação a Objetos. Conceitos Iniciais Introdução a Linguagem Java. Gil Eduardo de Andrade Orientação a Objetos Conceitos Iniciais Introdução a Linguagem Java Gil Eduardo de Andrade Conceitos: Orientação a Objeto Introdução Abordagem típica no desenvolvimento de sistemas complexos; Consiste

Leia mais

INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO Tópicos Estrutura Básica B de Programas C e C++ Tipos de Dados Variáveis Strings Entrada e Saída de Dados no C e C++ INTRODUÇÃO O C++ aceita

Leia mais

5 Apresentando a linguagem C

5 Apresentando a linguagem C 5 Apresentando a linguagem C O criador da linguagem de programação C foi Dennis Ritchie que, na década de 70, programou-a por meio de um computador DEC PDP-11 rodando sistema operacional Unix. Entretanto,

Leia mais

O que é uma Exceção? Call Stack. Java Tratamento de Exceção. de métodos que foram usados até chegar na presente instrução.

O que é uma Exceção? Call Stack. Java Tratamento de Exceção. de métodos que foram usados até chegar na presente instrução. Java Tratamento de Exceção O que é uma Exceção? n Uma exceção é um evento que ocorre durante a execução do programa que interrompe o fluxo normal de instruções. n Quando um erro acontece em um método,

Leia mais

Conceitos básicos da linguagem C

Conceitos básicos da linguagem C Conceitos básicos da linguagem C 2 Em 1969 Ken Thompson cria o Unix. O C nasceu logo depois, na década de 70. Dennis Ritchie, implementou-o pela primeira vez usando o sistema operacional UNIX criado por

Leia mais

Introdução a POO. Introdução a Linguagem C++ e POO

Introdução a POO. Introdução a Linguagem C++ e POO Introdução a POO Marcio Santi Linguagem C++ Introdução a Linguagem C++ e POO Programação Orientada a Objetos (POO) e C++ Recursos C++ não relacionados às classes Incompatibilidades entre C e C++ Classes

Leia mais

Redes de Computadores II

Redes de Computadores II Redes de Computadores II UDP Prof: Ricardo Luís R. Peres Tem como objetivo prover uma comunicação entre dois processos de uma mesma sessão que estejam rodando em computadores dentro da mesma rede ou não.

Leia mais

Programação: Estruturas de seleção

Programação: Estruturas de seleção Programação de Computadores I Aula 07 Programação: Estruturas de seleção José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/53 Valores booleanos Os valores booleanos

Leia mais

Algoritmos e programação

Algoritmos e programação Algoritmos e programação Introdução à Programação Prof. Bonadia dos Santos Conceitos básicos Desde o início de sua existência, o homem procurou criar máquinas que o auxiliassem em seu trabalho. Dentre

Leia mais

Aplicações, durante a execução, podem incorrer em muitas espécies de erros de vários graus de severidade Quando métodos são invocados sobre um objeto:

Aplicações, durante a execução, podem incorrer em muitas espécies de erros de vários graus de severidade Quando métodos são invocados sobre um objeto: Tratamento de Exceções Prof. Bruno Gomes bruno.gomes@ifrn.edu.br Programação Orientada a Objetos Exceções Aplicações, durante a execução, podem incorrer em muitas espécies de erros de vários graus de severidade

Leia mais

Capítulo 6. Gerenciamento de Arquivos. 6.1 Arquivos 6.2 Diretórios 6.3 Implementação (6.3.1 a 6.3.6) 6.4 Exemplos

Capítulo 6. Gerenciamento de Arquivos. 6.1 Arquivos 6.2 Diretórios 6.3 Implementação (6.3.1 a 6.3.6) 6.4 Exemplos Capítulo 6 Gerenciamento de Arquivos 6.1 Arquivos 6.2 Diretórios 6.3 Implementação (6.3.1 a 6.3.6) 6.4 Exemplos 1 Armazenamento de longo prazo 1. Deve guardar grandes volumes de dados. 2. Informação armazenada

Leia mais

Bacharelado em Ciência e Tecnologia BC-0505 - Processamento da Informação Teoria Arquivos Prof. Edson Pinheiro Pimentel edson.pimentel@ufabc.edu.

Bacharelado em Ciência e Tecnologia BC-0505 - Processamento da Informação Teoria Arquivos Prof. Edson Pinheiro Pimentel edson.pimentel@ufabc.edu. Bacharelado em Ciência e Tecnologia BC-0505 - Processamento da Informação Teoria Arquivos Prof. Edson Pinheiro Pimentel edson.pimentel@ufabc.edu.br Conceitos Arquivos permitem armazenar dados de maneira

Leia mais

Desenvolvimento de Sistemas Tolerantes a Falhas

Desenvolvimento de Sistemas Tolerantes a Falhas Confiança de software Desenvolvimento de Sistemas Tolerantes a Falhas Em geral, os usuários de um sistema de software esperam ele seja confiável Para aplicações não-críticas, podem estar dispostos a aceitar

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Marcelo Lobosco DCC/UFJF Comunicação em Sistemas Distribuídos Aula 06 Agenda Modelo Cliente-Servidor (cont.) Invocação Remota de Método (Remote Method Invocation RMI) Visão Geral

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ

UNIVERSIDADE FEDERAL DO PARANÁ CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 03 APRESENTAÇÃO: Hoje vamos conhecer o comando switch, o bloco try catch;

Leia mais

Sistemas Operacionais Arquivos. Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br)

Sistemas Operacionais Arquivos. Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br) Sistemas Operacionais Arquivos Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br) Copyright Carlos Ferraz Cin/UFPE Implementação do Sistema de Arquivos Sistemas de arquivos são

Leia mais

Engenharia de Software II

Engenharia de Software II Engenharia de Software II Aula 28 Revisão para a Prova 2 http://www.ic.uff.br/~bianca/engsoft2/ Aula 28-28/07/2006 1 Matéria para a Prova 2 Gestão de projetos de software Conceitos (Cap. 21) Métricas (Cap.

Leia mais

PHP (PHP Hypertext Preprocessor)

PHP (PHP Hypertext Preprocessor) PHP (PHP Hypertext Preprocessor) André Tavares da Silva andre.silva@udesc.br Datas No PHP a função date() é usada para formatar um tempo ou data. string date(string $format [,int $timestamp]) Ex.: echo

Leia mais

Trabalho Prático 1 Revisão de Programação, Tipos Abstratos de Dados e Combinação de Alocação Estática e Dinâmica de Memória

Trabalho Prático 1 Revisão de Programação, Tipos Abstratos de Dados e Combinação de Alocação Estática e Dinâmica de Memória Trabalho Prático 1 Revisão de Programação, Tipos Abstratos de Dados e Combinação de Alocação Estática e Dinâmica de Memória Valor: 0,5 pontos (5% da nota total) Documentação em Latex: +0,1 pontos Data

Leia mais

Acesso a Banco. Conexão em Java. Conexão em Java. Programação Orientada a Objetos Profa. Cristiane e Prof. Daniel

Acesso a Banco. Conexão em Java. Conexão em Java. Programação Orientada a Objetos Profa. Cristiane e Prof. Daniel Acesso a Banco Programação Orientada a Objetos Profa. Cristiane e Prof. Daniel As conexões em Java são feitas através de uma ponte que implementa todas as funcionalidades que um banco de dados padrão deve

Leia mais

Prototype, um Design Patterns de Criação

Prototype, um Design Patterns de Criação Prototype, um Design Patterns de Criação José Anízio Pantoja Maia Este artigo tem como finalidade compreender o funcionamento do padrão de projeto prototype, serão abordados os participantes que compõe

Leia mais

Escola Superior de Gestão e Tecnologia. Tratamento de Exceções

Escola Superior de Gestão e Tecnologia. Tratamento de Exceções Escola Superior de Gestão e Tecnologia Tratamento de Exceções Objetivos Compreender como o tratamento de exceção e de erro funciona. Como u4lizar try, throw e catch para detectar, indicar e tratar exceções,

Leia mais

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com /

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / andre.belini@ifsp.edu.br MATÉRIA: SEGURANÇA DA INFORMAÇÃO Aula N : 15 Tema:

Leia mais

Sistemas Operacionais

Sistemas Operacionais Multiprogramação 2 a edição Revisão: Fev/2003 Sistemas Operacionais Multiprogramação Capítulo 2 Tornar mais eficiente o aproveitamento dos recursos do computador Execução simultânea* de vários programas

Leia mais

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

MC102 Algoritmos e programação de computadores Aula 3: Variáveis MC102 Algoritmos e programação de computadores Aula 3: Variáveis Variáveis Variáveis são locais onde armazenamos valores na memória. Toda variável é caracterizada por um nome, que a identifica em um programa,

Leia mais

Métodos de Sincronização do Kernel

Métodos de Sincronização do Kernel Métodos de Sincronização do Kernel Linux Kernel Development Second Edition By Robert Love Tiago Souza Azevedo Operações Atômicas Operações atômicas são instruções que executam atomicamente sem interrupção.

Leia mais

Variáveis e Comandos de Atribuição

Variáveis e Comandos de Atribuição BCC 201 - Introdução à Programação Variáveis e Comandos de Atribuição Guillermo Cámara-Chávez UFOP 1/47 Estrutura Básica de um programa C I < d i r e t i v a s do pré p r o c e s s a d o r > < d e c l

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas Operacionais Um sistema operacional fornece o ambiente no qual os programas são executados. Internamente,

Leia mais

Implementando uma Classe e Criando Objetos a partir dela

Implementando uma Classe e Criando Objetos a partir dela Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 04 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 2 Prof. Cristóvão Cunha Implementando uma Classe

Leia mais

Resolução da lista de exercícios de casos de uso

Resolução da lista de exercícios de casos de uso Resolução da lista de exercícios de casos de uso 1. Explique quando são criados e utilizados os diagramas de casos de uso no processo de desenvolvimento incremental e iterativo. Na fase de concepção se

Leia mais