As per my understanding, the below code should throw
**System.SObjectException: SObject row was retrieved via SOQL without querying the requested field**, but instead it updated the account phone without any exception can someone please help me to understand the same?

    public static void SObjectException1() {

        Account act = [SELECT ID FROM Account WHERE Name='GenePoint' LIMIT 1];
        act.phone = '1234567810';
        update act;
    }


is it a best practice to not query the fields which we are going to update?