str.find() returns -1 when the substring is not found, while str.index() throws a ValueError.