trigger AccountTrigger on Account (after insert) {
 if (Trigger.isAfter) {
    if (Trigger.isInsert) {
        AccountTriggerclass.createOpportunityForNewAccounts(Trigger.New);
    }
	}
}
public class AccountTriggerclass {
	public static void createOpportunityForNewAccounts(List<Account> accList) {

		List<Opportunity> oppList = new List<Opportunity> ();

		for (Account acc : accList) {
			oppList.add(
				new Opportunity(
					Name = acc.Name == null ? 'Opp' : acc.Name,
					//CloseDate = System.today(),
					StageName = 'Prospecting',
					AccountId = acc.Id
				)
			);
		}

		// insert oppList;

		Database.SaveResult[] results = Database.insert(oppList, false);

		for (Integer i = 0; i<results.size(); i++) {
			if (!results[i].isSuccess()) {
				for (Database.Error err : results[i].getErrors()) {
					accList[i].addError('' + err.getMessage());
				}
			}			
		}

	}

}