Sahih Muslim , Book 15, Hadith 4058 (USC-MSA) ⓘ
'Adi reported Allah's Messenger as saying: When anyone amongst you takes an oath, but he finds (something) better than that he should expiate (the breaking of the oath), and do that which is better.
حَدَّثَنِي مُحَمَّدُ بْنُ عَبْدِ اللَّهِ بْنِ نُمَيْرٍ، وَمُحَمَّدُ بْنُ طَرِيفٍ الْبَجَلِيُّ، - وَاللَّفْظُ لاِبْنِ طَرِيفٍ - قَالاَ حَدَّثَنَا مُحَمَّدُ بْنُ فُضَيْلٍ، عَنِ الأَعْمَشِ، عَنْ عَبْدِ الْعَزِيزِ بْنِ رُفَيْعٍ، عَنْ تَمِيمٍ الطَّائِيِّ، عَنْ عَدِيٍّ، قَالَ قَالَ رَسُولُ اللَّهِ صلى الله عليه وسلم " إِذَا حَلَفَ أَحَدُكُمْ عَلَى الْيَمِينِ فَرَأَى خَيْرًا مِنْهَا فَلْيُكَفِّرْهَا وَلْيَأْتِ الَّذِي هُوَ خَيْرٌ " .
also referenced under: Book 27, Hadith 24 (In-Book) & Hadith 1651 (Reference)