Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    643

    Domanda teorica

    Salve,
    allora devo dare un esame di Linguaggi di programmazione che comprende un primo esame scritto di teoria ed eventualmente (se passo il primo) un successivo secondo esame scritto di pratica in JAVA (che palle 2 esami per uno stesso corso...)

    Il primo esame teorico oltre a degli esercizzi (assembler, far vedere cosa succede in memoria nello stack e nell'heap, etcetc) è composto anche da domande teoriche...mi dite se secondo voi la risposta a questa può essere corretta o se c'è da integrare con qualcosa in più?

    1) Cosa sono le eccezioni in un linguaggio di programmazione? In che senso si afferma che: "un'eccezione rimanda al contesto superiore" ?

    Io direi: Le eccezioni sono delle situazioni impreviste ed eccezionali che possono verificarsi all'interno di una routine (o metodo) che potenzialmente potrebbero rivelarsi pericolose.
    Per esempio se ho una classe Frazione che rappresenta frazioni mediante 2 variabili di istanza intere: numeratore e denominatore...se tento di creare un oggetto Frazione con denominatore nullo lancio un'eccezione poichè altrimenti creerei un oggetto sbagliato.

    Le eccezioni quindi sono usate quando un metodo si trova a dover gestire una situazione che non capisce edx invece di bloccare la computazione comunica a chi lo ha invocato il metodo che non riesce ad eseguire e proprio in questo senso le eccezioni rispondono al contesto superiore.

    Ad esempio nello stack ho che il metodo main() chiama un metodo A che a sua volta chiama un metodo B in cui viene lanciata un'eccezione che viene rimandata ad A. Quando A riceve un'eccezione può fare 3 cose:

    1) A non sà che fare --> Rimanda l'eccezione al contesto superiore cioè il main()
    2) A sà che fare: risolve il problema e richiama il metodo B
    3)A capisce che si tratta di un errore fatale e blocca la computazione.

    Se un'eccezione continua ad essere mandata al proprio contesto superiore prima o poi arriverà al main che essendo un metodo si comporta come gli altri rimandandolo al cotesto superiore o killando il processo in quanto nel main èla stessa cosa...perchèil suo contesto superiore è la JVM che terminerebbe il processo.

    Le eccezioni sono quindi un MECCANISMO DI RETURN ALTERNATIVO

    Grazie
    Andrea

  2. #2
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    da un corso universitario preso a caso :
    Java introduce il concetto di eccezione: evento che avviene durante l’esecuzione e sconvolge il normale flusso di esecuzione
    Le operazioni che possono essere soggette ad errori sono eseguite all’interno di un blocco controllato.
    Se si produce un errore, viene sollevata un’eccezione che e’ catturata dal blocco entro cui l’operazione e’ eseguita (il blocco di try, nota mia) e il controllo e’ passato ad un altro blocco che in cui l’eccezione viene gestita nel modo piu’ appropriato(il blocco di catch, altra nota mia)
    Quindi, per riguardo alla tua risposta:

    Le eccezioni sono delle situazioni impreviste ed eccezionali che possono verificarsi all'interno di una routine (o metodo)
    No! Non sono impreviste, tant'è vero che vengono previste e gestite.

    Le eccezioni quindi sono usate quando un metodo si trova a dover gestire una situazione che non capisce
    una situazione non prevista nel normale funzionamento del metodo, una situazione anomala, che non consente al metodo di lavorare correttamte.


    1) A non sà che fare --> Rimanda l'eccezione al contesto superiore cioè il main()
    2) A sà che fare: risolve il problema e richiama il metodo B
    3)A capisce che si tratta di un errore fatale e blocca la computazione.
    Nell'ipotesti che il main chiami A, A chiami B e B generi una eccezione:
    1) A non sa che fare, cioè non sa in modo correggere l'errore, e lascia che sia il livello superiore a gestire l'eccezione.
    2) A sa cosa fare, compensa l'errore e risponde correttamente al livello superiore

    L'errore è fatale quando viene lanciato o ri-lanciato dal main (nessuno gestisce l'errore) oppure se A decide che il modo migliore di gestire l'eccezione è quello di uccidere l'intero programma, ad esempio con un System.exit().

    Le eccezioni sono quindi un MECCANISMO DI RETURN ALTERNATIVO
    Indicano che un metodo non può terminare correttamente

    Nota però che se ti devi preparare ad un esame, in quel che ti ho detto potresti trovare alcune imprecisioni, in modo particolare sulla terminologia... per cui ti conviene consultare anche un manuale...



    Potrei consigliarti wikipedia
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    643
    Ti ringrazio,
    diciamo che il corsoè un primo corso di programmazione orientata agli oggetti e che le eccezioni le abbiamo viste solo in teoria e levedremo applicate in pratica nel corso successivo...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.