Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    33

    [C]Dubbio gestione errori

    ciao

    spesso vedo ke nei codici la gente fa questo:

    int iResult = WSAStartup( MAKEWORD(2,2), &wsaData );
    if ( iResult != NO_ERROR )
    printf("Error at WSAStartup()\n");

    ma non si poteva subito scrivere:

    WSAStartup(MAKEWOR(2,2), &wsaData); ?????

    Un altro esempio:

    SOCKET m_socket;
    m_socket = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );
    if ( m_socket == INVALID_SOCKET ) {
    printf( "Error at socket(): %ld\n", WSAGetLastError() );
    WSACleanup();
    return;
    }

    qui in questo caso ke bisogno c'è di mettere:

    if ( m_socket == INVALID_SOCKET ) {
    printf( "Error at socket(): %ld\n", WSAGetLastError() );
    WSACleanup();
    return;
    }


    altro esempio:

    if ( bind( m_socket, (SOCKADDR*) &service, sizeof(service) ) == SOCKET_ERROR ) {
    printf( "bind() failed.\n" );
    closesocket(m_socket);
    return;
    }

    è meglio fare cosi con l'if oppure normalmente scrivendo:

    bind( m_socket, (SOCKADDR*) &service, sizeof(service) )
    ?????????
    ciaooooooooo :master:

  2. #2

    Re: [C]Dubbio gestione errori

    Originariamente inviato da pacman
    ciao
    spesso vedo ke nei codici la gente fa questo:
    int iResult = WSAStartup( MAKEWORD(2,2), &wsaData );
    if ( iResult != NO_ERROR )
    printf("Error at WSAStartup()\n");
    ma non si poteva subito scrivere:
    WSAStartup(MAKEWOR(2,2), &wsaData); ?????
    No, a meno che non ci siano motivi inoppugnabili per non farlo (e nel 99.95% dei casi NON ce ne sono), e' sempre meglio gestire le situazioni anomale/di errore.
    "Qualsiasi esperto ha paura di combattere usando la katana vera. Anch'io. Ma non ignoro la mia paura, riesco ad accettarla, e a metterla da parte accanto a me".

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non comprendo il senso della domanda.

    Se possono esserci delle situazioni in cui e' possibile che una operazione non venga effettuata e generi un errore, allora e' normale controllare se si verifica questa situazione. O no?

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    33
    ok però nn sono indispensabili allora

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Niente e' indispensabile.

    Se allochi memoria, puoi anche *non* controllare se la memoria e' stata allocata, ma avrai un errore al suo primo utilizzo.

    Se invece controlli cio' che restituisce la funzione che alloca la memoria, puoi controllare meglio il funzionamento successivo del programma.

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    33
    aaaaahhhhh ho capito

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.